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