当前位置: 首页 > 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, "张三");
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.dtcms.com/a/237946.html

相关文章:

  • 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)
  • Java 面向对象进阶之多态:从概念到实践的深度解析
  • ckeditor5的研究 (9):写一个自定义插件,包括自定义的toolbar图标、插入当前时间,并复用 CKEditor5 内置的 UI 组件
  • Unity中的Mathf.Clamp01
  • 端午编程小游戏--艾草驱邪
  • Unity使用代码分析Roslyn Analyzers
  • 【动画】Unity2D骨骼动画-Animation2D
  • Linux系统编程中的_GNU_SOURCE宏
  • 【Blender】Blender 基础:导入导出
  • Unity中如何播放视频
  • WEB3全栈开发——面试专业技能点P1Node.js / Web3.js / Ethers.js