[英]JUnit5 assertAll private method assertions being ignored
使用 JUnit5 assertAll,我调用了一个方法来执行断言,但注意到当断言失败时,测试实际上通过了。 似乎调用如下方法被忽略了。
assertAll(
() -> jsonAssertions(actual, expectedUrl)
);
private Executable[] jsonAssertions(String actual, String expectedUrl) {
return new Executable[] {
() -> ProductAssert.assertThat(actual).urlEquals(expectedUrl)
};
}
(ProductAssert 是一个自定义的 assertJ 断言类)。
虽然这很好用
assertAll(
() -> ProductAssert.assertThat(actual).urlEquals(expectedUrl)
);
JUnit 5 assertAll
采用Executable
实例列表。
你现在这样做的方式,你实际上并没有将Executable
列表传递给assertAll
。 不要将匿名方法传递给assertAll
,而是直接传递jsonAssertions
的结果:
@Test
private void test() {
assertAll(jsonAssertions(actual, expected));
}
private Executable[] jsonAssertions(String actual, String expected) {
return new Executable[] {
() -> assertThat(actual).isNotNull(),
() -> assertThat(expected).isNotNull(),
() -> assertThat(actual).isEqualTo(expected)
};
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.