为什么在Spring中不推荐使用ExpectedException

时间:2013-05-22 00:57:56

标签: java spring testing junit

一方面,有一个新的@RunWith注释,可以动态更改单元测试框架。 但另一方面,Spring文档说明了org.springframework.test.annotation.ExpectedException

  • @deprecated从Spring 3.1开始,支持使用内置支持在底层测试框架中声明预期的异常(例如,JUnit,TestNG等)。

因此,我的代码将取决于单元测试框架。请解释一下。

第二个问题。目前,我使用Spring @RunWith注释实现测试。但我还为每个测试方法添加了jUnit特定的org.junit.Test注释。再次,如果我正确理解最好的方法 - 编写测试,那么我可以将例如jUnit更改为TestNg。春天@RunWith帮助我做到这一点。但是,如何避免使用org.junit.Test注释?

2 个答案:

答案 0 :(得分:5)

@RunWith不是Spring注释。 It's a JUnit one。正如您所想,它不允许您在JUnit和TestNG之间切换。相反,它允许您以不同的方式运行JUnit测试,例如添加Spring Test Framework。在该框架中,Spring已经提供了ExpectedException一段时间,但不再需要它,因为JUnit和TestNG的最新版本现在都提供了该功能。

答案 1 :(得分:1)

您无法编写可在JUnit和TestNG上运行的测试,因此您的代码必然依赖于测试框架。 @RunWith不是Spring用于运行具有不同测试框架的测试的注释,它属于JUnit并且用于与其他运行器(如SpringJUnit4Runner)一起运行JUnit以扩展JUnit功能