`
wang94777600
  • 浏览: 11517 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Springboot快速上手- 第七篇 单元测试

 
阅读更多

1 概述

SpringBoot对测试提供了一些简化支持,只需要添加起步依赖即可使用:

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

2 以前的测试方式

SpringJUnit支持,由此引入Spring-Test框架支持,通过这个注解让SpringJUnit4ClassRunner这个类提供Spring测试上下文
@RunWith(SpringJUnit4ClassRunner.class)
指定SpringBoot工程的Application启动类,通过这个注解加载和配置Spring应用上下文
@SpringApplicationConfiguration(classes = App.class)
由于是Web项目,Junit需要模拟ServletContext,因此需要给测试类加上@WebAppConfiguration
@WebAppConfiguration

3 常见的第一种方式

image.png
image.png

@RunWith(SpringRunner.class)
@SpringBootTest(classes = App.class)
@AutoConfigureMockMvc
这种方式下:直接
@Autowired
private MockMvc mockMvc;
然后就可以使用mockMvc
1:@RunWith里面,不再是SpringJUnit4ClassRunner.class,而是springboot专门做的一个启动类SpringRunner.class,当然,也可以使用@RunWith(SpringJUnit4ClassRunner.class)
2:也不使用@SpringApplicationConfiguration了,使用@SpringBootTest来指定启动类,启动类上面就有配置的注解
3:还可以指定随机的端口
@SpringBootTest(classes = App.class,webEnvironment = WebEnvironment.RANDOM_PORT)
4:可以引入自定义的配置类
@Import(MyTestsConfiguration.class)

 

image.png
image.png

4 常见的第二种方式

1:如果没有 @AutoConfigureMockMvc, 那么就需要
@Autowired
private WebApplicationContext wac;
private MockMvc mockMvc;
2:然后加上:

@Before
public void setup() {
    this.mockMvc = MockMvcBuilders.webAppContextSetup(this.wac).build();
}

然后就可以使用mockMvc

5 常见的第三种方式:使用TestRestTemplate

@RunWith(SpringRunner.class)
@SpringBootTest(classes = App.class,webEnvironment = WebEnvironment.RANDOM_PORT)
直接注入:
@Autowired
private TestRestTemplate rest;

然后就可以直接使用TestRestTemplate了

6 其它

Springboot还有一些专项的检查,比如:@DataJpaTest、@JdbcTest、@DataMongoTest、@RestClientTest、@JsonTest等等

 

分享到:
评论

相关推荐

    springboot-page-master.zip

    SpringBoot是由Pivotal团队提供的全新框架,其设计目标是使创建独立的、生产级别的基于Spring的应用变得极其简单,它集成了大量常用的第三方库配置(如DataSource、JPA、MongoDB、RabbitMQ等),默认配置能帮助...

    springmvc转为springboot--干货.docx

    它集成了大量常用的第三方库配置,如:Tomcat、JPA、Thymeleaf等,并提供了默认配置,使得开发者可以快速上手。 2. **Eclipse与STS插件**: Eclipse是一款广泛使用的Java IDE,而Spring Tools Suite (STS) 是...

    SpringBoot2.0.3-Demo简单的完整示例

    9. **测试**:SpringBoot提供了测试支持,包括@SpringBootTest注解用于启动整个应用上下文进行集成测试,@Autowired用于注入需要的bean,以及Mockito等工具进行单元测试。 10. **Actuator端点**:SpringBoot ...

    springboot-backend-apirest

    标题“springboot-backend-apirest”表明这是一个关于使用Spring Boot构建后端RESTful API的项目。...同时,它也可能包含一些最佳实践和自动化配置的示例,使得开发者能够快速上手并理解Spring Boot的强大之处。

    springboot-demo

    12. **测试(Testing)**:SpringBoot 提供了测试支持,包括 `@SpringBootTest` 和 `@WebMvcTest` 注解,方便进行单元测试和集成测试。 总的来说,"springboot-demo" 是一个典型的 SpringBoot 应用,它展示了如何...

    廖师兄两小时学会SpringBoot

    通过"廖师兄两小时学会SpringBoot"的学习资源,你可以系统地了解并掌握上述知识点,快速上手SpringBoot开发,实现高效便捷的Java应用构建。在实际学习过程中,建议结合代码示例和实践项目,巩固理解,提升技能。

    springboot-dome

    【SpringBootDemo-master】压缩包文件是一个基于Spring Boot框架的示例项目,旨在帮助开发者快速理解和上手Spring Boot。Spring Boot是由Pivotal团队提供的全新框架,其设计目标是用来简化新Spring应用的初始搭建...

    SpringBoot实战(第四版)带目录可以复制粘贴

    8. **测试**:探讨SpringBoot的单元测试和集成测试支持,包括@Test注解、Mockito等工具的使用。 9. **安全**:讲解Spring Security的集成,包括身份验证、授权、CSRF保护等安全机制。 10. **云原生特性**:如...

    springboot2-示例

    SpringBoot通过提供默认配置来简化Spring应用的创建,从而使得开发者可以快速上手并构建可生产的应用。这个“springboot2-示例”项目可能是为了帮助初学者和有经验的开发者更好地理解和运用SpringBoot2的核心特性。 ...

    SpringBoot实战(自带目录)第四版PDF下载

    7. **测试**:讲解单元测试和集成测试的策略,如何利用Spring Boot的测试支持类进行测试。 8. **监控与健康检查**:介绍Actuator组件,它提供了丰富的端点来监控和管理应用的健康状态、性能指标等。 9. **云原生...

    a002springboot_idea.zip

    通过这个项目,你可以快速上手并了解SpringBoot的核心特性。 1. **Spring Initializr**: 创建SpringBoot项目的第一步通常是通过Spring Initializr(启动器)来初始化。这个压缩包中的项目很可能就是通过这个工具...

    springboot-learn

    7. **测试**:SpringBoot提供了方便的测试支持,包括`@SpringBootTest`、`@WebMvcTest`等注解,可以用来编写单元测试和集成测试。 通过"springboot-learn-master"这个项目,你可以全面地了解和实践SpringBoot的各个...

    springboot_hello:SpringBoot - 你好

    SpringBoot 是一个由 Pivotal 团队开发的框架,...通过学习这些,你可以快速上手并开发出自己的第一个 Spring Boot 应用。在 "springboot_hello-master" 这个项目中,你可能能找到这些概念的实际应用,从而加深理解。

    2小时学会springboot源码

    在短短的两小时内,我们可以学习到SpringBoot的基本概念、核心特性以及如何快速上手。 首先,我们要了解SpringBoot的核心特性: 1. **自动配置**:SpringBoot通过`@EnableAutoConfiguration`注解来自动配置应用。...

    springboot的java配置实例

    SpringBoot是Spring框架的一种简化和快速开发方式,它集成了大量常用的第三方库配置,如 JDBC、MongoDB、JPA、RabbitMQ、Quartz 等,使得开发者能够快速上手构建自己的应用。在这个"springboot的java配置实例"中,...

    java毕设:办公自动化系统——springboot+vue+element-ui 前后端分离.zip

    9. **单元测试与集成测试**: 开发过程中,通过JUnit对后端服务进行单元测试,验证单个功能的正确性;而集成测试则可以使用SpringBoot自带的TestRestTemplate或MockMVC,模拟前端请求,检查整个系统功能的联动性。 ...

    初学者第一个SpringBoot程序源码.zip

    这个“初学者第一个SpringBoot程序源码.zip”文件显然是为那些刚开始接触SpringBoot的开发者准备的,它提供了一个基础的示例项目,帮助他们快速理解和上手。 SpringBoot的核心特性包括自动配置、内嵌Web服务器(如...

    spring-boot 所有jar包

    7. **零配置(Zero Configuration)**:Spring Boot推崇约定优于配置的理念,许多默认配置可以帮助开发者快速上手,减少大量的XML配置。 8. **易于测试**:Spring Boot提供了方便的测试支持,包括针对启动时间和...

    SpringBoot + Vue Element UI 实现前后端分离.zip

    7. 测试文件(可能在src/test目录下):对后端API的单元测试或集成测试。 通过学习这个项目,开发者不仅可以了解SpringBoot和Vue.js的基本用法,还能掌握前后端分离架构的实践技巧,如如何设计RESTful API,如何...

    SpringBoot

    提供了丰富的测试支持,如`@SpringBootTest`、`@WebMvcTest`等,方便单元测试和集成测试。 总之,SpringBoot以其简洁、高效的特性深受开发者喜爱,通过上述基础知识和实践示例,你将能快速上手并理解SpringBoot的...

Global site tag (gtag.js) - Google Analytics