【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()
	{
          
   
		//.......
	}
}

参考

经验分享 程序员 微信小程序 职场和发展