Spring Boot 2 实战:mock测试你的web应用

本文介绍了如何在Spring Boot 2中进行mock测试,包括依赖引入、配置测试环境、编写测试类测试API以及测试打桩。文章通过具体例子展示了如何使用JUnit、Spring Test、Mockito等工具进行单元测试,帮助开发者提升代码质量,减少bug。
摘要由CSDN通过智能技术生成

在这里插入图片描述

1. 概要

软件测试是一个应用软件质量的保证。java开发者开发接口往往忽视接口单元测试。作为java开发如果会Mock单元测试,那么你的bug量将会大大降低。spring提供test测试模块,所以现在来玩下springboot下的Mock单元测试,我们将对controller,service 的单元测试进行实战操作。

2. 依赖引入

​​

       <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

按照上面引入依赖而且scope为test。该依赖提供了一下类库

  • JUnit 4: 目前最强大的java应用单元测试框架
  • Spring Test & Spring Boot Test: Spring Boot 集成测试支持.
  • AssertJ: 一个java断言库,提供测试断言支持.
  • Hamcrest: 对象匹配断言和约束组件.
  • Mockito: 知名 Java mock 模拟框架.
  • JSONassert: JSON断言库.
  • JsonPath: JSON XPath 操作类库.

以上都是在单元测试中经常接触的类库。有时间你最好研究一下。

3. 配置测试环境

一个Spring Boot 应用程序是一个Spring ApplicationContext ,一般测试不会超出这个范围。
测试框架提供一个@SpringBootTest注解来提供SpringBoot单元测试环境支持。你使用的JUnit版本如果是JUnit 4不要忘记在测试类上添加@RunWith(SpringRunner.class)JUnit 5就不需要了。默认情况下,@SpringBootTest不会启动服务器。您可以使用其 webEnvironment 属性进一步优化测试的运行方式,webEnvironment 相关讲解:

  • MOCK(默认):加载Web ApplicationContext并提供模拟Web环境。该选择下不会启动嵌入式服务器。如果类路径上没有Web环境,将创建常规非Web的 ApplicationContext。你可以配合@AutoConfigureMockMvc@AutoConfigureWebTestClient模拟的Web应用程序。
  • RANDOM_PORT:加载 WebServerApplicationContext 并提供真实的Web环境&#
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值