idea 的SpringBoot项目做单元测试

SpringBoot项目的一个功能开发完成之后,需要对功能做单元测试,需要项目有单元测试的功能,这个项目是一个新建的项目,所以需要自己弄,下面记载一下步骤。

首先,我们使用点击需要做单元测试的类名,右击使用idea自带生成单元测试文件的功能:
1.点击文件 -> GO TO -> Test

 2.
这里写图片描述

3.
这里写图片描述

4.生成测试文件
这里写图片描述
5.加单元测试注解

 

6.在测试类中添加测试逻辑并运行

 

结果,控制台报错:java.lang.IllegalStateException: Unable to find a @SpringBootConfiguration, you need to use @ContextConfiguration or @SpringBootTest(classes=…) with your test


从一个国外的帖子看到解决方法:
1.首先创建一个用于所有单元测试类继承的abstract类:
 

/**
 * Created by yefuliang on 2018/2/2.
 */

@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(classes = BinggouFaApplication.class)//该class是SpringBoot项目的Application
@ActiveProfiles("test")
@WebAppConfiguration
@TestPropertySource({//引用的配置文件
        "classpath:/status_code_des.properties",
        "classpath:/config.properties",
        "classpath:/status_des.properties"
})
public abstract class SpringBootTestAbstract {
}

 2.SpringBoot项目的Application类上加@EnableAutoConfiguration 注解
 

@SpringBootApplication
@RestController
@ComponentScan(basePackages={"**.***.**"})
@ServletComponentScan(basePackages={"**.***.**"})
@MapperScan(basePackages={"**.***.**"}, sqlSessionFactoryRef = "sqlSessionFactory")
@EnableScheduling //定时任务注解
@EnableAutoConfiguration
public class BinggouFaApplication {

    public static void main(String[] args) {
        SpringApplication.run(BinggouFaApplication.class, args);
    }

}

3.单元测试类继承刚才新建的abstract类:

4.运行测试方法,结果成功执行单元测试