Junit 测试是否抛出断言

Junit 测试是否抛出断言,junit,junit4,Junit,Junit4,如何使用junit测试被测方法是否抛出断言?以下是我正在测试的方法: public int f(int i){ assert i > 0; return i; } 我正在使用junit 4.12。您可以通过在@test annotation中提供参数来测试它: @Test(expected = AssertionError.class) public void shouldThrowExceptionWhenIncorrectInput() { f(-3); }

如何使用junit测试被测方法是否抛出断言?以下是我正在测试的方法:

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

我正在使用junit 4.12。

您可以通过在@test annotation中提供参数来测试它:

@Test(expected = AssertionError.class)
public void shouldThrowExceptionWhenIncorrectInput() {
    f(-3);
}
这将检查是否抛出AssertException。 但是,如果要确保此函数不会使用不正确的参数运行,则必须注意,可以通过使用-da参数运行java来关闭断言

为了确保抛出异常,我建议在一些验证方法中抛出IllegalArgumentException,并为其提供适当的消息。然后,您将确保在提供不正确的参数时,这将始终引发异常