2017-06-05 99 views
0

如何測試使用junit測試的方法是否引發斷言?下面是我測試的方法:測試是否引發斷言

public int f(int i){ 
    assert i > 0; 
    return i; 
} 

我使用的是junit 4.12。

回答

2

您可以通過在@Test註釋提供參數測試:

@Test(expected = AssertionError.class) 
public void shouldThrowExceptionWhenIncorrectInput() { 
    f(-3); 
} 

這將檢查AssertException被拋出。 但是,如果要確保此函數不會以不正確的參數運行,則必須注意,可以通過運行java並使用-da參數來關閉聲明。

爲了確保拋出異常,我建議在某些驗證方法中拋出IllegalArgumentException,併爲其提供正確的消息。然後你會確定當提供不正確的參數時,這總會引發異常。