我正在尝试将属性值的字符串值的集合传递给参数化的JUnit测试。Properties.values()返回Collection,而JUnit要求在Collection结构中传递参数。
这是否意味着我必须进行转换Collection<Object> to Collection<Object[]>
,其中每个数组实际上都是单个项目?
我尝试了这个:
Arrays.asList(new Object[][] {{theProperties.values()}});
但这会将所有值放到一个对象中,并且不会像我期望的那样创建一个集合。有人可以帮忙吗?
即使每个测试只有一个参数,看起来参数化的JUnit测试也需要一个Collection。
将集合转换为集合:
使用Java 8:
Collection<String> c = Arrays.asList("a", "b");
Collection<Object[]> co = c.stream()
.map(ele -> new Object[]{ele})
.collect(Collectors.toList());
使用Java 7或更低版本:
Collection<String> coll = Arrays.asList("a", "b");
Collection<Object[]> params = new ArrayList<Object[]>();
for (String s : coll) {
params.add(new Object[] { s });
}
对于Java 7或更低版本,您可以:
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句