使用AssertJ时,在测试Streams供应商时可以避免转换吗?
我尝试查看未解决的问题,大多数都指向https://github.com/joel-costigliola/assertj-core/issues/683,但我认为这不是直接匹配。
Supplier<Stream<String>> supplier =
() -> Stream.of("String1", "String2");
assertThat(supplier).isNotNull()
.extracting(Supplier::get)
.isInstanceOf(Stream.class)
.satisfies((stream) ->
assertThat((Stream)stream)
.contains("String1", "String2"));
该测试有效,但我想尽可能避免转换Stream。 谢谢。
答案 0 :(得分:0)
我同意tkruse的评论!
我只想补充一点,在AssertJ Core的下一版本(3.13.0)中,您将能够使用asInstanceOf
来转换被测对象并访问特定于类型的断言,请参见https://github.com/joel-costigliola/assertj-core/pull/1498 < / p>
Object value = 0;
assertThat(values).asInstanceOf(INTEGER).isZero();
对于您而言,我相信您可以写:
assertThat(supplier).isNotNull()
.extracting(Supplier::get)
.asInstanceOf(STREAM)
.satisfies(stream -> assertThat(stream).contains("String1", "String2"));