Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么ExpectedException在春季被弃用_Java_Spring_Testing_Junit - Fatal编程技术网

Java 为什么ExpectedException在春季被弃用

Java 为什么ExpectedException在春季被弃用,java,spring,testing,junit,Java,Spring,Testing,Junit,一方面,有一个新的@RunWith注释,允许动态更改单元测试框架。 但另一方面,Spring文档介绍了org.springframework.test.annotation.ExpectedException: @从Spring3.1开始就已弃用,支持使用内置支持在底层测试框架(例如JUnit、TestNG等)中声明预期的异常 因此,我的代码将依赖于单元测试框架。请解释一下 第二个问题。目前,我使用Spring@RunWith注释实现测试。但是我还向每个测试方法添加了jUnit特有的org.

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

  • @从Spring3.1开始就已弃用,支持使用内置支持在底层测试框架(例如JUnit、TestNG等)中声明预期的异常
因此,我的代码将依赖于单元测试框架。请解释一下


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

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

您不能编写一个可以同时在JUnit和TestNG上运行的测试,所以您的代码必然依赖于测试框架@RunWith不是Spring对使用不同测试框架运行测试的注释,它属于JUnit,用于与其他运行程序(如SpringJUnit4Runner)一起运行JUnit,以扩展JUnit功能

甚至可以在TestHG和JUnit之间动态切换吗?你为什么要这样做?@StephenC:我从来没有听说过这样的事情,我能想到的想要这样做的唯一原因是将两个框架中编写的单独的遗留测试套件合并为一个。不过,这听起来不像这里发生的事情。