当前位置: 首页 > java >正文

告别 @MockBean!在 Spring Boot 3.2+ 中使用 @MockitoBean 进行单元测试

多年来,@MockBean 一直被广泛用于 Spring Boot 单元测试中来模拟依赖项。

然而,在 Spring Boot 3.2 中,@MockBean 由于性能和可维护性方面的问题已被标记为废弃

🔴 @MockBean 存在的问题

创建不必要的 Spring 上下文代理 → 拖慢测试执行速度
全局模拟 Bean → 可能在多个测试中产生副作用
未针对 Spring Boot 3.2 的测试改进进行优化

✅ 解决方案:使用 @MockitoBean

Spring Boot 3.2 引入了 @MockitoBean,它提供了:
更快的测试执行速度 - 直接集成 Mockito
更好的测试组件隔离
更可靠的单元测试体验

1️⃣ 什么是 @MockitoBean

@MockitoBeanSpring Boot 3.2 中的一个新注解,它是 @MockBean直接替代品

✔ 它为依赖项创建模拟实例
✔ 它与 JUnit 5 和 Mockito 有更好的集成
✔ 它不需要完整的 Spring 上下文重新加载

2️⃣ 将 @MockBean 替换为 @MockitoBean

让我们通过一个在服务测试中模拟存储库的示例来演示。

📝 示例 1:使用 @MockBean 的旧方法(已废弃)

@SpringBootTest
class UserServiceTest {@MockBean  // ❌ 在 Spring Boot 3.2+ 中已废弃private UserRepository userRepository;@Autowiredprivate UserService userService;@Testvoid testGetUserById() {User mockUser = new User(1L, "张三");
http://www.xdnf.cn/news/12736.html

相关文章:

  • 智慧园区管理平台
  • 阿里云Alibaba Cloud安装Docker与Docker compose【图文教程】
  • Spring 中的三级缓存机制详解
  • MySQL索引:7大类型+4维分类
  • 《Windows 10下QT+OpenCV+Yolo11:AI视觉开发实战指南》
  • GNSS高精度定位之-----星基差分
  • 数据网格的革命:从集中式到分布式的数据管理新范式
  • C++中的数组
  • Linux Docker的简介
  • uni-app学习笔记三十三--触底加载更多和下拉刷新的实现
  • 重新定义 AI 协同:三款开源 MCP 工具开启智能体从“聊天”到“操控”
  • [论文阅读] 人工智能+软件工程(软件测试) | 当大语言模型遇上APP测试:SCENGEN如何让手机应用更靠谱
  • 【论文阅读29】区间预测CIPM(2025)
  • RabbitMQ fanout交换机
  • 国防科技大学计算机基础慕课课堂学习笔记
  • Unity中的Mathf.Clamp01
  • 6.5 自学测试 数据库基础 Day5
  • 利用frp和腾讯云服务器将内网暴露至外网(内网穿透)
  • 【MATLAB代码】基于MCC(最大相关熵)的EKF,一维滤波,用于解决观测噪声的异常|附完整代码,订阅专栏后可直接查看
  • 模拟法解题的思路与算法分享
  • [GitHub] 优秀开源项目
  • python训练营打卡第47天
  • 27、基于map实现的简易kv数据库
  • AIGC的产品设计演进:从工具到协作者
  • 黑马Sting四道练习题
  • 《Progressive Transformers for End-to-End Sign Language Production》复现报告
  • windows使用脚本杀死python进程
  • STM32学习之I2C(理论篇)
  • Addressable-配置相关
  • 操作系统:分页存储管理方式(精简版、含例题)