【spring】@RunWith的使用(单元测试)
@RunWith作用
这是spring的原生语法 SpringBoot语法参见
@RunWith 就是一个运行器:
-
@RunWith(JUnit4.class) 就是指用JUnit4来运行 @RunWith(SpringJUnit4ClassRunner.class),让测试运行于Spring测试环境 此时需要搭配@ContextConfiguration 使用,Spring整合JUnit4测试时,使用注解引入多个配置文件 @RunWith(Suite.class) 的话就是一套测试集合
@ContextConfiguration语法:
单个文件
-
@ContextConfiguration(Locations=“classpath:applicationContext.xml”) @ContextConfiguration(classes = SimpleConfiguration.class)
多个文件时,可用{} @ContextConfiguration(locations = { “classpath:spring1.xml”, “classpath:spring2.xml” })
@RunWith(SpringJunit4ClassRunner.class) 使用说明
@RunWIth(SpringJunit4ClassRunner.class) @ContextConfiguration(locations = { "classpath:applicationContext.xml"} public class MyTest { @Test public void hehe() { //....... } }
这种写法是为了让测试在Spring容器环境下执行。
Spring的容器环境是啥呢? 比如常见的 Service Dao Action , 这些个东西,都在Spring容器里,junit需要将他们拿到,并且使用来测试。
例如,我们注入了一个SomeService 的实例:
@RunWIth(SpringJunit4ClassRunner.class) @ContextConfiguration(locations = { "classpath:applicationContext.xml"} public class MyTest { @Autowired SomeService service; //注入了一个service @Test public void hehe() { //....... } }
参考
下一篇:
【概念辨析】二维数组传参的几种可能性