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

告别 @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, "张三");

相关文章:

  • NLP学习路线图(三十三): 文本分类
  • redis--黑马点评--分布式锁实现详解
  • uni-app学习笔记二十七--设置底部菜单TabBar的样式
  • AWS 公开数据集下载与操作说明
  • iOS 抖音导航栏首页一键分两列功能的实现
  • 【iOS】多线程NSOperation,NSOperationQueue
  • 从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(十二)
  • 【iOS】 Block再学习
  • Ubuntu20.04中 Redis 的安装和配置
  • Cursor 编辑器, 使用技巧,简单记录一下
  • 【人工智能 | 项目开发】Python Flask实现本地AI大模型可视化界面
  • 2025年与2030年AI及AI智能体 (Agent) 市场份额分析报告
  • 【GO性能优化】第十五章:性能优化艺术——揭秘Go程序的性能调优技巧
  • CppCon 2015 学习:Live Lock-Free or Deadlock
  • MS39531N 是一款正弦驱动的三相无感直流电机驱动器,具有最小振动和高效率的特点
  • Perplexity AI:重塑你的信息探索之旅
  • 树莓派超全系列教程文档--(57)如何设置 Apache web 服务器
  • VLM引导的矢量草图生成AutoSketch
  • JS手写代码篇---手写ajax
  • 【ROS2】核心概念8——参数设置(Parameters)
  • 网站建设服务网站建设/站长工具一区
  • 网站销售的优势/湘潭高新区最新新闻
  • 特步的网站建设策划/合肥关键词排名优化
  • 济宁做网站公司/佐力药业股票
  • 海南网站建设中心/软文广告的案例
  • wordpress网站建设教程/陕西疫情最新消息