背景
在springBoot项目中执行Test测试的时候会提示报错。
原因
很多类比如JPA的实体类,都需要项目加载的时候才能够使用new。
解决方法
在测试类前面加上如下代码
@SpringBootTest(
/*MyframeApplication对应项目的启动类。如果不写这个的话,下面的service就无法自动注入。
测试类启动时会先启动项目,再执行测试方法。也就是说测试类的测试依赖项目启动环境。*/
classes = ApiApplication.class,
/*因为测试的是service,禁用web以加快项目启动速度*/
webEnvironment = SpringBootTest.WebEnvironment.NONE
)
或者直接在类上面加一个@SpringBootTest注解就行了。默认知道到主类方法。