Spring Boot 单元测试,注入失败,报空指针错误

        今天写代码,在test的类中@Autowired注入要测试的@Component类,但发现一运行就会报空指针异常java.lang.NullPointException,但发现使用new的方法的时候可以注入这个@Component类,但是要调用这个@Component中注入的其他的类时也会报空指针异常,在网上查了很多,比如说在idea软件里test的目录是在src下,但是都没有解决,直到搜到一位道友的博客,讲述了,这个是由于test类的,没有使用@SpringBootTest注解,可以先建一个TmallApplicationTests 类

package com.eastcom.aijud.fm.statistic.steam;

import org.junit.After;

import org.junit.Before;

import org.junit.runner.RunWith;

import org.springframework.boot.test.context.SpringBootTest;

import org.springframework.test.context.junit4.SpringRunner;

import org.springframework.test.context.web.WebAppConfiguration;

@RunWith(SpringRunner.class)

@SpringBootTest

//由于是Web项目,Junit需要模拟ServletContext,因此我们需要给我们的测试类加上@WebAppConfiguration。

@WebAppConfiguration

public class TmallApplicationTests {

    @Before

    public void init() {

        System.out.println("开始测试-----------------");

    }
    @After

    public void after() {

        System.out.println("测试结束-----------------"); 
    }
}
再建一个test的类,继承这个TmallApplicationTests 类
public class MessageReceiverTest extends TmallApplicationTests {

    @Autowired
    private MessageReceiver messageReceiver;

    @Test
    public void test1() {
测试代码
}

 

 

接下来代码就像上面代码里一样,将要测试的类注入进来,调用方法就可以了。

操作比较简单,复制我这个类的代码(可以对以后测试代码做很大简化,只要继承这个类就可以测试,很舒服的),再写一个测试类就可以了。

希望能对同样出现这个问题的人有帮助。

 

 

你可能感兴趣的:(springboo)