使用junit进行集成spring项目的单元测试

Posted 没有梦想-何必远方

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用junit进行集成spring项目的单元测试相关的知识,希望对你有一定的参考价值。

本文介绍下项目集成spring,如何使用junit进行单元测试。

我们知道spring的项目测试时可以手写一个main方法,用ClassPathXmlApplicationContext 或 FileSystemXmlApplicationContext读取配置文件,然后实例化bean进行测试,类似下面这样:

ApplicationContext factory=new ClassPathXmlApplicationContext("classpath:applicaContext.xml"); 
IHelloWorld hw = (IHelloWorld) factory.getBean("helloworldbean"); 
log.info(hw.getContent("XXX")); 

这样手动去getBean毕竟是很麻烦的,想一下如果可以直接用spring的autowire 来注入bean,直接调用方法,那该多省事啊 ~
而现在junit就是提供这样的功能 ~

使用方法

 <!-- 包依赖 -->
 <dependency>
     <groupId>junit</groupId>
     <artifactId>junit</artifactId>
     <version>4.12</version>
     <scope>test</scope>
     <optional>true</optional>
 </dependency>

maven项目在test/java 文件夹下创建我们的测试父类:
BaseTest ,具体业务测试类:CreditServiceImplTest

import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.AbstractJUnit4SpringContextTests;

@ContextConfiguration(locations = "classpath:applicationContext-resources.xml")
public class BaseTest extends AbstractJUnit4SpringContextTests

public class CreditServiceImplTest extends BaseTest 

    public static Logger log =  LogManager.getLogger(CreditServiceImplTest.class.getName());
    @Autowired
    private CreditService creditService;
    @Before
    public void setUp() throws Exception 
        Assert.notNull(creditService, "Cannot get bean [creditService]");
    
    @After
    public void tearDown() throws Exception 
        this.creditService = null;
    
    @Test
    public void getCredit()
       //具体测试内容
    

这样我们就可以注入creditService ,直接开始方法测试了。
同时,这样测试也可以直接执行sql语句进行数据库初始化,比如:

   public void initData(String scriptName)
        this.executeSqlScript("classpath:/initialData/script/a.sql", false);
    

至此,使用junit进行集成spring项目的单元测试整理完成 ~ 下篇讲会讲解下如何使用junit进行多线程并发测试 ~

以上是关于使用junit进行集成spring项目的单元测试的主要内容,如果未能解决你的问题,请参考以下文章

Spring Boot 集成 JUnit5,更优雅单元测试!

Spring 集成Junit单元测试

Springboot集成JUnit5优雅进行单元测试

SpringBoot 集成JUnit

spring集成Junit做单元测试及常见异常解决办法

(转)Spring Boot Junit单元测试