使用IntelliJ IDEA 创建的SpringBoot的maven项目建立测试类遇到的问题

以前没有接触过springboot,因新公司需要有去简单了解了下。

然后今天在写后端代码的时候,本能的想写个单元测试类。于是就按照以前使用eclipse中的maven项目时所用的那种方法。结果当然并不顺利,当然也应该是我技术太菜。。。

==================================

如果新建项目里面src目录下已经就有test目录,那么你就可以跳过以下步骤。如果没有test目录,那么请看下面。首先新建一个test目录,然后在test目录下再建一个java目录,然后鼠标放在java目录上再右击,找到Mark Directory as --->Test Sources Root,这样生成的才是测试目录。。

=======================

接着写测试类,要注意目录结构,即测试类的包路径要在SpringBoot入口类的子包中!原因的话自己看SpringBoot的HelloWorld应该是有讲的比较清楚。。

=====================

以下是测试类,注意注解才是重点。。

package com.lin.demo;

import com.lin.demo.service.UserService;
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
public class DemoApplicationTests {

    @Autowired
    private UserService userService;

    @Test
    public void insertUser() {
        System.out.print(userService.findUserById(2));
    }

}

=======================

以上正常来说是可以正常使用测试类了,,然而这个是我自己建的工程,跟公司的工程目录还是不太一样,所以我又遇到问题了。

 

就是:如果springBoot的入口类那边不是用SpringBootApplication这个注解,那么要注意了,你很有可能跟我遇到同一个问题:

如果springBoot的入口类那边不是用SpringBootApplication这个注解,那么你的测试类还是会报错

主要看这个

java.lang.IllegalStateException: Unable to find a @SpringBootConfiguration, you need to use @ContextConfiguration or @SpringBootTest(classes=...) with your test

因为SpringBootApplication是个组合注解,包含了好几个注解,如果不是用这个注解,那么就要写很多个,包括下面这个,而就是因为这个测试类也启动不起来。。。

============================

===========================

好像说的有点乱。。

有需要请参考以下博文如何高效使用idea进行Spring boot测试?,是这篇文章给了我参考和思路。。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章