SpringJUnit4ClassRunner 和 SpringRunner 有啥区别
Posted
技术标签:
【中文标题】SpringJUnit4ClassRunner 和 SpringRunner 有啥区别【英文标题】:What is the difference between SpringJUnit4ClassRunner and SpringRunnerSpringJUnit4ClassRunner 和 SpringRunner 有什么区别 【发布时间】:2018-05-06 21:21:46 【问题描述】:每当我看到一篇与 Spring 测试相关的博文时,我都会看到这些类中的任何一个,但不明白真正的区别:
@RunWith(SpringRunner.class)
@RunWith(SpringJUnit4ClassRunner.class)
【问题讨论】:
【参考方案1】:@RunWith(SpringRunner.class)
告诉 JUnit 使用 Spring 的测试支持运行。 SpringRunner
是 SpringJUnit4ClassRunner
的新名称,只是看起来更容易一些。
SpringRunner
仅适用于 spring-test 4.3。
SpringRunner
类扩展 SpringJUnit4ClassRunner
。
Source code 中的SpringRunner
是
package org.springframework.test.context.junit4;
import org.junit.runners.model.InitializationError;
public final class SpringRunner extends SpringJUnit4ClassRunner
public SpringRunner(Class<?> clazz) throws InitializationError
super(clazz);
【讨论】:
这增加了更多信息以了解SpringRunner
和SpringJUnit4ClassRunner
之间的详细关系。【参考方案2】:
没有区别,来自javadoc:
SpringRunner 是 SpringJUnit4ClassRunner 的别名。
参考:https://docs.spring.io/spring/docs/4.3.0.RC2_to_4.3.0.RELEASE/Spring%20Framework%204.3.0.RELEASE/org/springframework/test/context/junit4/SpringRunner.html
【讨论】:
以上是关于SpringJUnit4ClassRunner 和 SpringRunner 有啥区别的主要内容,如果未能解决你的问题,请参考以下文章
Springboot单元测试:SpringRunner 和 SpringJUnit4ClassRunner使用
带有@RunWith(SpringJUnit4ClassRunner.class) 的配置文件
TestNG 是不是有像 SpringJUnit4ClassRunner 这样的跑步者
@RunWith(SpringRunner.class)和@RunWith(SpringJUnit4ClassRunner.class)的区别
@RunWith(SpringRunner.class)和@RunWith(SpringJUnit4ClassRunner.class)的区别