2011-03-23 110 views
3

我在寫我自己的JUnit Assert?我如何測試它?你如何測試自定義斷言?

我知道如何餵食它會傳遞的東西以及會使它失敗的東西,但是如何爲這些東西編寫JUnit測試?

自定義斷言看起來像:

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

我怎樣才能趕上失敗?

回答

6

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 
}