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.运行测试方法,结果成功执行单元测试