AssertJ:断言所有Assert对象都基于

时间:2019-05-30 15:08:36

标签: java testing junit assertj

使用AssertJ库时,我很想能够断言所有org.assertj.core.api.Assert对象都对它们进行了实际断言。也就是说,如下所示的测试应该失败,因为它显然是错误的:

import static org.assertj.core.api.Assertions.assertThat;

// ... elided ...

@Test
public void unfinishedAssertion() {
    assertThat("str");
}

是否可以使用AssertJ进行配置,或者在JUnit @After方法中进行声明?

我唯一的想法是提供一个像assertThat这样的静态工厂,该工厂返回一个代理,将所有方法调用委托给基础的Assert,并使用After方法断言该代理至少具有一个方法的调用。并非Assert#asAssert#withFailMessage等,但这似乎很麻烦且不必要,因为该库本身应提供此功能。

1 个答案:

答案 0 :(得分:0)

目前,最好的方法是使用findbug / spotbug来警告您这种滥用,有关详细信息,请参见https://assertj.github.io/doc/#assertj-core-incorrect-usage

希望有帮助。