gpt4 book ai didi

java - 参数化 Junit 类 - 如何将 ArrayList 作为参数发送给 method()

转载 作者:行者123 更新时间:2023-11-30 01:49:03 24 4
gpt4 key购买 nike

考虑下面的代码:

import static org.junit.Assert.assertEquals;
import java.util.Collection;
import java.util.List;
import org.assertj.core.util.Arrays;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;

@RunWith(Parameterized.class)
public class StackFrustratedCoderTest {
private List<Integer> input;
private Integer expected;
private ItcStackFrustrated itcStack;

public StackFrustratedCoderTest(List<Integer> array, Integer expected){
this.input = array;
this.expected = expected;
}

@Before
public void init(){
itcStack = new ItcStackFrustrated();
}

@Parameterized.Parameters
public Collection parameterInput(){
return Arrays.asList(new Object[][] {{1,7,2,2,4,4}, 11}});
}

@Test
public void testFrustatedCoder(){
assertEquals(this.expected, itcStack.check(this.input));
}
}

考虑方法 itcStack.check() 是一个要测试的函数,并且作为参数,它需要 ArrayList 变量。

如何用下面的方法编码:

@Parameterized.Parameters
public Collection parameterInput(){
return Arrays.asList(new Object[][] {{1,7,2,2,4,4}, 11}});
}

上面的代码显示编译错误。 {1,7,2,2,4,4} 是一个 int 数组,但我需要 ArrayList。如有任何建议,我们将不胜感激。

此外,如果可以提供任何文章来解释参数化类的内部功能。

最佳答案

这里:

{1,7,2,2,4,4}

是一个将创建 int 数组的文字。

简单地走:

Arrays.asList(1, 7, 2, ...);

相反。

编辑

我们可以通过这种方式做到这一点。

int[] array = new int[]{1,7,2,2,4,4};
return Arrays.asList(new Object[][] {{Arrays.asList(array), 11}});

关于java - 参数化 Junit 类 - 如何将 ArrayList 作为参数发送给 method(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56774176/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com