Java 如何对自定义断言进行单元测试?

Java 如何对自定义断言进行单元测试?,java,unit-testing,junit,assert,junit4,Java,Unit Testing,Junit,Assert,Junit4,我在写我自己的JUnit断言?如何测试它 我知道如何为它提供将通过的东西和将使它失败的东西,但是我如何为这些东西编写JUnit测试呢 自定义断言将类似于: public static void assertSomething() { if (!something()) { fail("Expected something, but ..."); } } 如何捕获失败?fail()抛出一个junit.framework.AssertionFailedError,如

我在写我自己的JUnit断言?如何测试它

我知道如何为它提供将通过的东西和将使它失败的东西,但是我如何为这些东西编写JUnit测试呢

自定义断言将类似于:

public static void assertSomething() {
    if (!something()) {
        fail("Expected something, but ...");
    }
}
如何捕获失败?

fail()
抛出一个
junit.framework.AssertionFailedError
,如果愿意,您可以在断言方法的单元测试中捕获它

例如:

@Test(expected = AssertionFailedError.class)
public void testMyAssertFails() {
    assertSomething("valueThatWillFail");
}

@Test
public void testMyAssertPasses() {
    assertSomething("valueThatPasses");
    //if you reach this line, no failure was thrown
}