测试

Spring 提供了一组测试工具,可以轻松地测试 Spring 应用程序的各个组件,包括控制器、服务、存储库和其他组件。它具有丰富的测试注释、实用程序类和其他功能,以帮助进行单元测试、集成测试等。

JPA 测试

Spring JPA(Java Persistence API)是一个库,它使在 Spring 应用程序中使用数据库和其他数据存储变得容易。Spring JPA 使用 Java 持久化 API(JPA)与数据库交互,并提供一个抽象层来处理不同的数据存储。

在 Spring JPA 中进行测试涉及测试应用程序的持久层,其中包括与数据库交互的实体、存储库和数据访问对象(DAO)。将这些组件与应用程序的其余部分分开测试有助于确保持久层正常工作,并且可以识别和解决任何问题,而不会影响应用程序的其余部分。

使用 Spring JPA 测试持久层有几种方法。一种方法是使用内存数据库,例如 H2 或 Derby,这些数据库可以在测试期间用于模拟生产数据库。这样可以使测试快速运行,并消除设置单独的测试数据库的需要。另一种方法是使用真实的数据库,并使用 TestContainers 为测试目的启动数据库的实例。

Spring Test 模块提供不同的注释,例如 @DataJpaTest@AutoConfigureTestDatabase,这些注释有助于测试 JPA 特定的功能。

此外,Spring 提供了 JPA 测试实用程序,它提供了一组实用程序类和注释,以便轻松测试基于 JPA 的持久层,例如 @DataJpaTest@AutoConfigureTestDatabase 和 TestEntityManager 类。这些实用程序可用于创建、读取、更新和删除实体,执行 JPA 查询并在测试期间与数据库交互。

将持久层与应用程序的其余部分分开进行测试,可以在开发过程的早期捕获任何问题,从而轻松识别和修复错误,并提高应用程序的质量。

模拟 MVC

Spring 的 MockMvc 是一个类,允许您在不需要实际 Web 服务器的情况下测试 Spring MVC 控制器。 它是 Spring Test 模块的一部分,该模块为 Spring 应用程序提供了一组测试实用程序。

@SpringBootTest 注解

@SpringBootTest 注解用于创建一个完全配置的 Spring ApplicationContext 实例,以进行测试。它可用于在实际应用程序环境中测试应用程序的组件,包括控制器,服务和存储库。

@MockBean 注解

MockBean 是 Spring 注解之一,可以用于在 Spring 应用程序上下文中创建 bean 的模拟实现。当测试用例用 @MockBean 进行注解时,Spring 会创建指定 bean 的模拟实现并将其添加到应用程序上下文中。可以在测试期间使用模拟 bean 来替换真正的 bean。

最后

为了方便其他设备和平台的小伙伴观看往期文章:

微信公众号搜索:Let us Coding,关注后即可获取最新文章推送

看完如果觉得有帮助,欢迎 点赞、收藏、关注

《Spring 测试指南》:JPA、MockMvc 和 @SpringBootTest 详解的更多相关文章

  1. Spring Boot 启动(二) 配置详解

    Spring Boot 启动(二) 配置详解 Spring 系列目录(https://www.cnblogs.com/binarylei/p/10198698.html) Spring Boot 配置 ...

  2. 转载 Spring、Spring MVC、MyBatis整合文件配置详解

    Spring.Spring MVC.MyBatis整合文件配置详解   使用SSM框架做了几个小项目了,感觉还不错是时候总结一下了.先总结一下SSM整合的文件配置.其实具体的用法最好还是看官方文档. ...

  3. (转)java之Spring(IOC)注解装配Bean详解

    java之Spring(IOC)注解装配Bean详解   在这里我们要详细说明一下利用Annotation-注解来装配Bean. 因为如果你学会了注解,你就再也不愿意去手动配置xml文件了,下面就看看 ...

  4. Quartz学习——SSMM(Spring+SpringMVC+Mybatis+Mysql)和Quartz集成详解(转)

    通过前面的学习,你可能大致了解了Quartz,本篇博文为你打开学习SSMM+Quartz的旅程!欢迎上车,开始美好的旅程! 本篇是在SSM框架基础上进行的. 参考文章: 1.Quartz学习——Qua ...

  5. Spring MVC、MyBatis整合文件配置详解

    Spring:http://spring.io/docs MyBatis:http://mybatis.github.io/mybatis-3/ Building a RESTful Web Serv ...

  6. spring在IoC容器中装配Bean详解

    1.Spring配置概述 1.1.概述 Spring容器从xml配置.java注解.spring注解中读取bean配置信息,形成bean定义注册表: 根据bean定义注册表实例化bean: 将bean ...

  7. Spring Boot2 系列教程 (五) | yaml 配置文件详解

    自定义属性加载 首先构建 SpringBoot 项目,不会的看这篇旧文 使用 IDEA 构建 Spring Boot 工程. 首先在项目根目录 src >> resource >&g ...

  8. Spring AOP四种实现方式Demo详解与相关知识探究

    一.前言 在网络上看到一篇博客Spring实现AOP的4种方式,博主写的很通俗易懂,但排版实在抓狂,对于我这么一个对排版.代码格式有强迫症的人来说,实在是不能忍受~~~~(>_<)~~~~ ...

  9. Spring MVC拦截器(Interceptor )详解

    处理器拦截器简介 Spring Web MVC的处理器拦截器(如无特殊说明,下文所说的拦截器即处理器拦截器)类似于Servlet开发中的过滤器Filter,用于对处理器进行预处理和后处理. 常见应用场 ...

  10. Spring Boot Hello World 基于 IDEA 案例详解

    一.Spring Boot 是什么 世界上最好的文档来源自官方的<Spring Boot Reference Guide>,是这样介绍的: Spring Boot makes it eas ...

随机推荐

  1. 解析Spring中的循环依赖问题:初探三级缓存

    什么是循环依赖? 这个情况很简单,即A对象依赖B对象,同时B对象也依赖A对象,让我们来简单看一下. // A依赖了B class A{ public B b; } // B依赖了A class B{ ...

  2. DataGear 制作基于Vue2、Element UI前端框架的数据可视化看板

    DataGear 数据可视化看板内置了一些基本.简单的页面交互组件,当它们无法满足实际看板需求时,可以引入更流行和强大的前端框架. 本文以Vue2.Element UI前端框架为例,介绍如何制作具有更 ...

  3. go grpc流式和非流式的例子

    参考grpc官方:  https://grpc.io/docs/quickstart/go.html 或官方中文翻译: http://doc.oschina.net/grpc?t=60133 安装pr ...

  4. 15. JVM垃圾回收器详解

    1. 垃圾回收器的分类 和 GC性能指标 垃圾收集器没有在规范中进行过多的规定,可以由不同的厂商.不同版本的JVM来实现. 由于JDK的版本处于高速迭代过程中,因此Java发展至今已经衍生了众多的GC ...

  5. vscode 自定义 当前行转大写快捷键 alt + shift + U

    vscode 自定义 当前行转大写快捷键 alt + shift + U

  6. .bat 批处理 手册 教程

    有时候bat写个脚本 还是挺方便的,网上也没有不错的手册,有时间再整理看吧.网上找几个,先留存. 系统变量 %USERPROFILE% https://blog.csdn.net/ztx114/art ...

  7. stm32文件系统读写操作调试总结

    一 问题 最近使用到了文件系统的读写,中间遇到了一些问题值得深思.   二 源码解析 创建文件: FRESULT res; do { sprintf(filename,"/sensor_si ...

  8. Python Numpy 中的打印设置函数set_printoptions

    一 概述 np.set_printoptions()用于控制Python中小数的显示精度. 二 解析 np.set_printoptions(precision=None, threshold=Non ...

  9. (二)Linux环境的学习环境的搭建

    Xshell的安装和连接 由于我们打算通过Xshell进行命令的输入,就不再进行VMWARE-TOOLS的安装. 我们直接进行安装Xshell 并开始连接我们创建的创建的虚拟机 我们可以通过Xshel ...

  10. Winform DataGridView 添加复选框列

    1.编辑DataGridView的属性: 2.定义列的类型为chekcBox: 3.点击添加: 4.效果: 5.编辑: