将 Streams 与 TestFactory 结合使用



我有这个方法

@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()一个数组(对象)来命名测试呢?

使用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); }
));
}

最新更新