你如何单元测试自定义断言?

时间:2011-03-23 15:49:34

标签: java unit-testing junit assert junit4

我正在编写自己的JUnit Assert?我该如何测试?

我知道如何为它提供一些会通过的东西以及会让它失败的东西,但是如何为这些东西编写JUnit测试呢?

自定义断言将类似于:

public static void assertSomething() {
    if (!something()) {
        fail("Expected something, but ...");
    }
}

我怎么能抓住那个失败?

1 个答案:

答案 0 :(得分:7)

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
}