我有这种方法
@TestFactory
Stream<DynamicTest> dynamicTestsFromStream() throws IOException {
initialize();
return Stream.of(core).map(
str -> DynamicTest.dynamicTest("test" + str.toString(), () -> { Just for Testing > Assert.assertTrue(false); }));
}
我的
core
数组包含类型为Tuple4
的元素。 Tuple4(String a, String b, String c, String d)
。当我尝试查找名称时(我想要
String c
),我得到一个错误,在当前示例中str
的结果是:Tuple4@4d50efb8, Tuple4@7e2d773b, Tuple4@2173f6d9
有人可以告诉我如何为str获取正确的索引吗?因为
get(int)
不起作用,因为我无法获得当前职位?编辑
当我放
Stream.of("A","B","C").map(...);
为测试指定正确的名称“测试A” ...
那么,如何给
stream.of()
一个Array(Object)命名测试呢? 最佳答案
使用Stream.of(SomeType[])
冒着使流仅包含单个元素(即数组)的风险。使用Arrays::stream
代替。
假设core
是Tuple4[]
类型(如果不是,请在问题中包括实际类型),您可以执行以下操作:
@TestFactory
Stream<DynamicTest> dynamicTestsFromStream() throws IOException {
initialize();
return Arrays.stream(core) // Stream<Tuple4>
.map(tuple -> DynamicTest.dynamicTest(
"test " + tuple.c,
() -> { Assert.assertTrue(false); }
));
}