如何在 Java 中断言异常?
2022-09-03 08:33:56
这可能是一个概念上愚蠢的问题,但它也可能不是,因为我仍然是一个学生,我想我应该没有问题。
想象一下,你有一个方法,如果给定某些条件,它将抛出一个NumberFormatException。我想写一个单元测试,看看异常是否正确。我怎样才能做到这一点?
附言:我正在使用JUnit来编写单元测试。
谢谢。
这可能是一个概念上愚蠢的问题,但它也可能不是,因为我仍然是一个学生,我想我应该没有问题。
想象一下,你有一个方法,如果给定某些条件,它将抛出一个NumberFormatException。我想写一个单元测试,看看异常是否正确。我怎样才能做到这一点?
附言:我正在使用JUnit来编写单元测试。
谢谢。
正如其他海报所建议的那样,如果您使用的是 JUnit4,则可以使用以下注释:
@Test(expected=NumberFormatException.class);
但是,如果您使用的是较旧版本的 JUnit,或者您希望在同一测试方法中执行多个“异常”断言,则标准习语是:
try {
formatNumber("notAnumber");
fail("Expected NumberFormatException");
catch(NumberFormatException e) {
// no-op (pass)
}
假设您使用的是 JUnit 4,请在测试中以导致其引发异常的方式调用该方法,并使用 JUnit 注释
@Test(expected = NumberFormatException.class)
如果引发异常,测试将通过。