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

Ale*_*ndr 2 java testing junit spring

一方面,有一个新的@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注释呢?

Rya*_*art 5

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