繁体   English   中英

JUnit5 assertAll 私有方法断言被忽略

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM