将Streams与TestFactory一起使用

时间:2017-03-13 14:23:22

标签: java arrays multidimensional-array java-8

我有这个方法

sed

我的@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

有人可以告诉我如何为str添加正确的索引吗?因为Tuple4@4d50efb8, Tuple4@7e2d773b, Tuple4@2173f6d9不起作用,因为我无法获得当前的位置?

修改

当我放get(int)时 测试的名称为“测试A”......

那么如何给Stream.of("A","B","C").map(...);一个数组(对象)命名测试?

1 个答案:

答案 0 :(得分:2)

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