2017-06-05 57 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,并为其提供正确的消息。然后你会确定当提供不正确的参数时,这总会引发异常。