2009-01-21 74 views
0

我设计了一个小型测试用例类,旨在使模拟更简单(在这种情况下,使用JUnit 4和EasyMock)。其中一部分是在测试完成后验证嘲笑,因此嘲笑在用@After注释的方法中验证。JUnit:确保在测试方法中出现故障之前,在@After方法中出现故障

但是,如果测试方法本身出现故障,导致测试未完成且模拟验证失败,则JUnit报告的失败是验证失败。但是,如果报告的失败是测试本身的失败,那将会更有用。

那么,在JUnit中有没有办法确保总是显示测试方法中的错误/失败,而不是使用@After注释的方法中出现的错误/失败?

回答

2

通常,@After注释相当于tearDown(),它暗示它应该只进行测试清理,而不是运行测试或断言。

我会对你的测试用例打电话给你“验证”的方法,在每个测试用例,而不必JUnit的结束你调用

+0

由于许多测试将检查是否符合模拟期望,所以在@After方法中使用该代码是相当常见的做法。此外,你可以有多个@After方法,所以你可能有一个做模拟验证,一个做拆解。如果你不需要,不要重复。 – cynicalman 2009-01-21 20:54:14

0

什么声称是你在测试中做,在@After验证是正在报告?如果存在断言失败(或调用fail()方法),那么将报告该错误,并且不会报告after方法。测试方法是什么样子?