cod*_*leb 7 java junit unit-testing junit4
而不是在我的JUnit测试中进行异常处理,我只是声明我的测试方法... throws Exception?
我开始这样做,我没有看到为什么我应该更具体的原因.
Gho*_*ica 12
单元测试的核心方面是帮助您尽快隔离/解决生产代码中的错误.
从这个意义上讲:你不会编写@Test方法以便被其他方法调用.您编写它们以便JUnit框架运行它们.
通常,当该测试抛出异常时; 抓住它是没有意义的(除非预期;并且你想进一步检查该异常).
因此:没有捕获块; 而且在99.999%的情况下,将测试方法签名的潜在投掷原因添加为正确答案.或者100%; 因为我找不到一个好的反例.
但是我会谨慎地使用throws Exception快速.您仍然希望您的代码尽可能"具体"; 所以最好去throws ThatExceptionThatCanReallyBeThrown.当这个列表过于频繁地增长时......那么你最好跟进那一侧并检查你的生产代码中的抛出列表是否应该以某种方式"削减".
编辑:可能需要理解的核心事项是:对于每一项任何测试,您都会对将要发生的事情有一个确切的期望.该方法应该:
@Test(expected=...)事情只是加上throws X, Y你的测试方法签名是解决子弹2和4的直接方法.
| 归档时间: |
|
| 查看次数: |
444 次 |
| 最近记录: |