拦截与尝试/捕获

时间:2012-12-18 10:11:10

标签: scala scalatest

我正在将scala'try / catch'测试代码转换为使用'拦截'

有没有我不应该使用'拦截'的情况?使用“拦截”而不是“尝试/捕获”的唯一好处是简洁?

2 个答案:

答案 0 :(得分:8)

我认为主要区别在于intercept有一个语义,表明您获得的异常是预期的,而不是由程序错误引起的。

因此,当用户输入错误或类似情况时,测试异常的测试用例将正常抛出时,我通常只使用intercept

答案 1 :(得分:7)

其中一个实际优点是intercept也会返回Exception,因此您可以这样检查:

intercept[IndexOutOfBoundsException](s charAt -1).getMessage should be === "..."