1.使用springboot单元测试 遇到的问题
@SpringBootTest(
classes = Application.class,
webEnvironment = SpringBootTest.WebEnvironment.NONE)
webEnvironment 有四种属性设置,如果设置为NONE,表示不用web环境。但是大部分的单元测试 是需要web环境的。需要改成这个:
webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT
2.循环依赖的问题
解决方式: 在application 后面加上这个:
@SpringBootApplication(exclude = DataSourceAutoConfiguration.class)
3.Parameter 0 of constructor in XXX required a bean ...
test环境下加上resources 目录
最后附上 成功的单元测试代码:
package com.sq.driverspark; import com.sq.driverspark.web.TraceIdFilter; import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; import org.springframework.boot.web.servlet.ServletComponentScan; import org.springframework.web.servlet.config.annotation.EnableWebMvc; /** * @author 用户中心 * 核心启动类 */ @SpringBootApplication(exclude = DataSourceAutoConfiguration.class) @ServletComponentScan(basePackageClasses = {TraceIdFilter.class}) @EnableWebMvc @MapperScan(basePackages = {"com.sq.driverspark.dao.*.mapper","com.sq.driverspark.dao.*.mapper.ext"}) public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } }