天天看点

Spring Boot 单元测试

1. 前言

一般来说,对控制层的接口访问可以使用PostMan进行,或者通过Swagger进行自动化的测试。

但是对于Service层或者Dao层的测试,就需要借助单元测试了。

2. 测试类写法

假设我们要对HelloService的hello方法进行测试:

@Service

public class HelloService {

public String hello() {

 return "hello world";

}

}

1

2

3

4

5

6

首先我们需要在项目pom.xml中添加测试相关依赖支持:

 <dependency>

  <groupId>org.springframework.boot</groupId>

  <artifactId>spring-boot-starter-test</artifactId>

 </dependency>

然后在src/test/java下创建类HelloTest,代码如下:

@SpringBootTest

@RunWith(SpringRunner.class)

public class HelloTest {

@Autowired

private HelloService helloService;

@Test

public void testHelloMethod() {

 String result = helloService.hello();

 Assert.assertThat(result, Matchers.is("hello world"));

7

8

9

10

11

12

这段代码需要详细解释下:

第一,@SpringBootTest和@RunWith(SpringRunner.class)注解保证当前的类中测试方法启动时,已经使整个Spring容器正常运作,也就是相当于快速启动了整个SpringBoot项目。

第二,由于已经启动了容器,所以@Autowired可以注入任意组件。

第三,@Test标注的方法会被当做测试方法执行。

3. 小结

对Service或者Dao层进行测试,可以直接通过测试类发起,相较于通过控制层发起,更加简便快捷。

另外对于定时器方法,也可以很方便的通过单元测试类进行测试。

————————————————

版权声明:本文为CSDN博主「熊猫大哥大」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:

https://blog.csdn.net/woshisangsang/article/details/118768580