Spring Boot 单元测试

作者阿里云代理 文章分类 分类:linux图文教程 阅读次数 已被围观 691

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>

1

2

3

4

然后在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"));

}

}

1

2

3

4

5

6

7

8

9

10

11

12

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


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

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

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

3. 小结

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


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

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

版权声明:本文内容转发自阿里云社区,由阿里云实名注册用户自发贡献版权归原作者所有。本站不拥有其著作权,亦不承担相应法律责任。如果您发现本中有涉嫌抄袭的内容,请联系站内客服,本将立刻删除涉嫌侵权内容。 

 

本公司销售:阿里云、腾讯云、百度云、天翼云、金山大米云、金山企业云盘!可签订合同,开具发票。

我有话说: