SpringBoot 测试类无法自动注入问题

一、背景
SpringBoot + JUnit4 
测试类启动测试的时候报空指针
 
二、解决
测试类上面增加注解
@RunWith(SpringRunner.class)
@SpringBootTest(classes = TestApplication.class)
 
解决该问题心得:
1.之前使用过 JUnit5, JUnit5相较4有了很大优化,使用 JUnit5的时候不用增加@RunWith(SpringRunner.class)注解,@SpringBootTest注解也无需增加参数
2.非必要不要额外加一些其他注解,尤其是扫描类的注解,比如@MapperScan或者@ComponentScan,防止因为扫描范围导致其他问题
 
package com.middle.dao;

import com.claim.ClaimApplication;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

@RunWith(SpringRunner.class)
@SpringBootTest(classes = ClaimApplication.class)
public class userDaoTest {
    @Autowired
    UserDao userDao;
    @Test
    public void select(){
        System.out.println("1111111111");
        userDao.selectByPrimaryKey("111");
        System.out.println("0000000000");
    }
}

 

你可能感兴趣的:(SpringBoot,spring,boot,junit)