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