springboot 单元测试问题记录

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