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);
}
}

原文:https://www.cnblogs.com/thinkingandworkinghard/p/13212672.html