@RunWith(SpringJunit4ClassRunner.class) 简介

  1.今天我在看Spring实战这本书时,我看到了@RunWith(SpringJunit4ClassRunner.class)这样的单元测试

package com.xuefei.spring_pro.test;

import static org.junit.Assert.assertNotNull;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

import com.xuefei.spring_pro.cdDemo.CDPlayConfig;
import com.xuefei.spring_pro.cdDemo.CompactDisc;

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = CDPlayConfig.class)
public class CDPlayTest {
    
    @Autowired
    private CompactDisc cd;
    
    @Test
    public void cdShouldNotBeNull() {
        cd.play();
        assertNotNull(cd);
        
    }
}

  就上网了解了一下

  这种写法是为了让测试在Spring容器环境下执行。

  Spring的容器环境是啥呢?

    比如常见的 Service Dao Action , 这些个东西,都在Spring容器里,junit需要将他们拿到,并且使用来测试。

  注解说明:

    1)@RunWith:用于指定junit运行环境,是junit提供给其他框架测试环境接口扩展,为了便于使用spring的依赖注入,spring提供了org.springframework.test.context.junit4.SpringJUnit4ClassRunner作为Junit测试环境。

    2)@ContextConfiguration({"classes=Congfig.clsss",classpath:applicationContext.xml"}) 这里可以用classes来直接导入同包下写的配置类。或者导入配置文件。

 

猜你喜欢

转载自www.cnblogs.com/lililixuefei/p/11874858.html