java - 将流与 TestFactory 结合使用

标签 java arrays multidimensional-array java-8

我有这个方法

@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(字符串 a,字符串 b,字符串 c,字符串 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); }
    ));
}

关于java - 将流与 TestFactory 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42765983/

相关文章:

c - 从 C 中的数组中删除大量元素的最快方法

c - 在不使用 break 的情况下终止输入为 -1 时的数组输入?

我可以通过同时索引 c 中的两个矩阵来将矩阵的值传递给另一个矩阵吗?

java - ImageJ - 在不保存文件的情况下转换图像格式

java - 签名的java小程序有限制吗?

java - 跨版本和平台的一致随机数

php - 从多维数组到 MySQL

Java正则表达式\cx(控制字符)

c++ - 访问不存在的数组索引和访问现有但为空的索引之间的区别

php将多维数组内爆到制表符分隔行