java中junit处理异常,java – 如何处理junit中的异常

一个意外的例外是测试失败,所以你不需要也不想抓住一个。

@Test

public void canConvertStringsToDecimals() {

String str = "1.234";

Assert.assertEquals(1.234, service.convert(str), 1.0e-4);

}

直到服务不会抛出IllegalArgumentException,因为str中有一个小数点,这将是一个简单的测试失败。

预期的异常应由@Test的可选预期参数处理。

@Test(expected=NullPointerException.class)

public void cannotConvertNulls() {

service.convert(null);

}

如果程序员懒惰并且抛出异常,或者如果他的服务返回0.0,测试将失败。只有NPE才能成功。请注意,预期异常的子类也可以工作。这对于NPE来说很少见,但与IOExceptions和SQLExceptions相似。

在您想要测试特定异常消息的罕见情况下,可以使用较新的ExpectedException JUnit @Rule。

@Rule

public ExpectedException thrown= ExpectedException.none();

@Test

public void messageIncludesErrantTemperature() {

thrown.expect(IllegalArgumentException.class);

thrown.expectMessage("-400"); // Tests that the message contains -400.

temperatureGauge.setTemperature(-400);

}

现在,除非setTemperature引发IAE,并且消息包含用户尝试设置的温度,否则测试失败。该规则可以以更复杂的方式使用。

您的示例最好由以下方式处理:

private void testNumber(String word, int number)

throws OutOfRangeNumberException {

assertEquals(word, service.convert(number));

}

@Test

public final void testZero()

throws OutOfRangeNumberException {

testNumber("zero", 0);

}

你可以内联testNumber;现在,这并没有什么帮助。您可以将其转换为参数化测试类。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值