如何使用junit测试被测方法是否抛出断言?这是我正在测试的方法:
public int f(int i){
assert i > 0;
return i;
}
我正在使用junit 4.12。
答案 0 :(得分:2)
您可以通过在@Test
注释中提供参数来测试它:
@Test(expected = AssertionError.class)
public void shouldThrowExceptionWhenIncorrectInput() {
f(-3);
}
这将检查是否抛出AssertException
。
但是,如果要确保此函数不会使用不正确的参数运行,则必须注意可以通过使用-da
参数运行java来关闭断言。
为了确保抛出异常,我建议在某些验证方法中抛出IllegalArgumentException
,并为其提供正确的消息。然后,您将确保在提供不正确的参数时始终会抛出异常。