我已经开始使用新的(ish)JUnit Theories功能来参数化测试。如果您的理论设置为采用Integer
参数,则Theories
测试运动员会选择标有Integer
的任何@DataPoint
:
@DataPoint
public static Integer number = 0;
以及数组中的任何Integer
:
@DataPoints
public static Integer[] numbers = {1, 2, 3};
甚至是返回数组的方法,如:
@DataPoints
public static Integer[] moreNumbers() { return new Integer[] {4, 5, 6}; };
但不在List
中。以下不起作用:
@DataPoints
public static List<Integer> numberList = Arrays.asList(7, 8, 9);
编辑:看起来也不支持其他馆藏,因为这不起作用。
@DataPoints
public static Collection<Integer> numberList = new HashSet<Integer>() {{
add(7);
add(8);
add(9);
}};
我做错了什么,或者List
s,Set
等真的不起作用?这是一个有意识的设计选择,不允许使用Collection
作为数据点,还是只是一个尚未实现的功能?是否有计划在未来版本的JUnit中实现它?
(我目前正在使用版本4.8.1,而最新版本是4.8.2但是it looks like这不是4.8.2中添加的内容)