【问题标题】:Java JUnit 5 AssertAll StreamJava JUnit 5 AssertAll 流
【发布时间】:2017-03-24 16:55:12
【问题描述】:

我有

ArrayList<Executable>( () -> assertTrue(true), ... )

现在我正在尝试将其转换为 Stream&lt;Executable&gt; 以使用 assertAll 方法。

  public static void assertAll(Stream<Executable> executables)
                                                   throws MultipleFailuresError

如何将ArrayList&lt;Executable&gt;(如果没有比ArrayList 更简洁的方法)转换为Stream&lt;Executable&gt;

参考:http://junit.org/junit5/docs/current/api/org/junit/jupiter/api/Assertions.html#assertAll-org.junit.jupiter.api.function.Executable...-

【问题讨论】:

    标签: java junit java-stream junit5


    【解决方案1】:

    只需调用所有实现Collection的类都继承的stream()方法:

    assertAll(executableList.stream());
    

    请注意,如果您已经准备好 ArrayList 的元素,则可以将它们传递给 assertAll,因为有一个 overloaded method 接受可变参数输入:

    assertAll(() -> assertTrue(true), ...)
    

    这样就不需要创建ArrayListStream

    【讨论】:

    • 重点是我希望 Go 动态创建测试套件,因此如果其中一个失败,则测试失败,在 arraylist 中存储套件,仍然可能吗?
    • 我没有完全理解您的问题,但是如果断言是动态创建的,并且您需要使用assertAll,那么您可以将列表转换为我在答案中提到的流。如果我遗漏了什么,也许最好重新提出你原来的问题。
    猜你喜欢
    • 1970-01-01
    • 2018-07-28
    • 1970-01-01
    • 1970-01-01
    • 2016-11-11
    • 2018-06-25
    • 2020-04-07
    • 2020-07-29
    • 1970-01-01
    相关资源
    最近更新 更多