2025年webflux详解(webflux web)

webflux详解(webflux web)Spring Boot 提供了许多公用方法与注解 可以帮助开发者测试应用程序 Spring Boot 主要包括 spring boot test 与 spring boot test autoconfigur 核心模块 Spring Boot 提供了 spring boot starter test 的 Starter 主要集成了 JUnit Jupiter AssertJ

大家好,我是讯享网,很高兴认识大家。

在 Spring Boot Test 诞生之前,常用的测试框架是 JUnit 等。Spring Boot Test 诞生后,集成了上述测试框架。Spring 框架的一个主要优势是更容易集成单元测试,可以通过 new 操作符直接生成实例,或者用 mock 对象代替真实的依赖。通常,测试不只是单元测试,还有集成测试,Spring Boot Test 可以在不部署应用程序的前提下进行集成测试。

使用 Spring Boot Test,需要在项目中增加 spring-boot-starter-test 的 Starter 依赖,具体如下:


使用 @SpringBootTest 注解,即可进行测试。

如果项目中依赖 spring-boot-starter-test,则自动添加以下类库。如表 1 所示:





<caption> 表1 测试依赖</caption> <tbody> <tr> <th> 库</th> <th> 说 &nbsp;明</th> </tr> <tr> <td> JUnit</td> <td> 包括JUnit 4和JUnit 5</td> </tr> <tr> <td> Spring Test &amp; Spring Boot Test</td> <td> 用于Spring Boot测试</td> </tr> <tr> <td> AssertJ</td> <td> 流式的断言库</td> </tr> <tr> <td> Hamcrest</td> <td> 匹配库</td> </tr> <tr> <td> Mockito</td> <td> Mock框架</td> </tr> <tr> <td> JSONassert</td> <td> 为JSON提供断言</td> </tr> <tr> <td> JsonPath</td> <td> 为JSON提供XPATH功能</td> </tr> </tbody> 

讯享网


通常情况下,Spring Boot Test 支持的测试种类可以分为以下 3 种:


    讯享网<li> 单元测试:主要用于测试类功能等。</li> <li> 切片测试:介于单元测试与集成测试之间,在特定环境下才能执行。</li> <li> 集成测试:测试一个完整的功能逻辑。</li> 

    为了避免复杂的配置,Spring 引入了大量的注解方式进行测试,这样可以减轻很多工作量。让读者理解并学会使用这些注解是本文学习的主要目标,了解这些注解,可以帮助读者更加容易地掌握 Spring Boot Test 的整个框架。

    1. @SpringBootTest注解</h4> 

    Spring Boot 用 @SpringBootTest 注解替代了 spring-test 中的 @ContextConfiguration 注解,该注解可以创建 ApplicationContext,而且还添加了一些其他注解来测试特定的应用。

    使用 @SpringBootTest 的 WebEnvironment 属性来修改测试的运行方式。



      讯享网<li> MOCK:加载 Web 应用程序上下文并提供模拟的 Web 环境。该注解不会启动嵌入的服务器,可以结合@AutoConfigureMockMvc 和 @AutoConfigureWebTest-Client 注解使用。</li> <li> RANDOM_PORT:加载 WebServerApplicationContext 并提供真实的 Web环境,嵌入的服务器启动后可以监听随机端口。</li> <li> DEFINED_PORT:加载 WebServerApplicationContext 并提供真实的 Web 环境,嵌入的服务器启动后可以监听特定的端口。特定的端口可以从 application.properties 获取,也可以设置为默认的 8080 端口。</li> <li> NONE:使用 SpringApplication 加载 ApplicationContext,但不提供任何 Web 环境。</li> 


      示例代码如下:


      讯享网

      2. @RunWith注解</h4> 

      讯享网3. @WebMvcTest注解</h4> 

      如果要测试 Spring MVC controllers 是否按预期那样工作,则用 @WebMvcTest 注解。@WebMvcTest 注解可自动配置 Spring MVC,并会限制扫描 @Controller 和 @ControllerAdvice 等注解的 Bean。

      通常,@WebMvcTest 仅限于单个 Controller,并结合 @MockBean 注解提供对某个类的模拟实现。@WebMvcTest 还会自动配置MockMvc。MockMvc 提供了一个强大的方法可以快速测试 MVC 控制器,并且无须启动一个完整的 HTTP 服务器。示例代码如下:


      4. @WebFluxTest注解</h4> 

      讯享网5. @DataMongoTest注解</h4> 

      6. @DataRedisTest注解</h4> 

      讯享网7. @RestClientTest注解</h4> 

      8. @AutoConfigureMockMvc注解</h4> 

      讯享网9. @MockBean注解</h4> 

      测试的过程中某些场景需要模拟一些组件,这时就需要使用 @MockBean 注解。示例代码如下:

      声明:《Java系列教程》为本站“54笨鸟”官方原创,由国家机构和地方版权局所签发的权威证书所保护。


      小讯
      上一篇 2025-05-04 21:08
      下一篇 2025-06-14 10:01

      相关推荐

      版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
      如需转载请保留出处:https://51itzy.com/kjqy/160331.html