4

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

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

4

2 回答 2

8

我认为主要区别在于它intercept的语义是你得到的异常是预期的,而不是由程序错误引起的。

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

于 2012-12-18T10:27:27.837 回答
7

一个实际的优点是它intercept也返回一个Exception,所以你可以像这样检查它:

intercept[IndexOutOfBoundsException](s charAt -1).getMessage should be === "..."
于 2012-12-18T10:33:53.193 回答