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

junit中@InjectMocks作用详解

目录

一  @InjectMocks

1.1 @InjectMocks作用

1.2  案例1

1.3 案例  2


一  @InjectMocks

1.1 @InjectMocks作用

@InjectMocks 是 Mockito 测试框架中的一个关键注解,用于自动将被测类的依赖项(模拟对象)注入到被测类实例中。它简化了测试类的初始化过程,特别适用于依赖注入的场景。

在类中zongheTest 调用UserserviceImpl类;

而UserserviceImpl依赖与UserDao这个类

@InjectMocks 这里就是将自动将被测类【UserServiceImpl 】的依赖项(模拟对象)【userdao】注入到被测类实例中【UserServiceImpl 类】中

1.2  案例1

1.测试代码

@ExtendWith(MockitoExtension.class)
public class ZongheTest {@Mockprivate UserDao userDao;@InjectMocksprivate UserServiceImpl userServiceImpl;@Testpublic void test() {UserDomain userDomain = new UserDomain();userDomain.setUserName("ljf");userDomain.setTel("18");Mockito.doReturn(888).when(userDao).addUser(userDomain);int  k = userServiceImpl.addUser(userDomain);System.out.println("k:"+k);}
}

2.service代码

3结果

1.3 案例  2

代码:

解析

  1. @Mock
    创建 PaymentService 和 InventoryService 的模拟对象,用于替代真实依赖。

  2. @InjectMocks
    自动完成以下操作:

    • 实例化 OrderService

    • 将 paymentService 和 inventoryService 注入到 OrderService 的对应字段中

    • 等效于手动初始化:
      new OrderService(paymentService, inventoryService)

  3. 测试逻辑

    • 通过 when(...).thenReturn(...) 定义模拟行为

    • 调用被测方法 placeOrder()

    • 用 verify() 检查依赖的交互是否按预期发生

 

http://www.lryc.cn/news/608258.html

相关文章:

  • Redisson高并发实战:Netty IO线程免遭阻塞的守护指南
  • 零基础 “入坑” Java--- 十六、字符串String 异常
  • wxPython 实践(六)对话框
  • Java 大视界 -- Java 大数据在智能安防视频监控系统中的视频摘要生成与智能检索优化进阶(377)
  • ARMv8/v9架构FAR_EL3寄存器介绍
  • 图漾AGV行业常用相机使用文档
  • UE5 Insight ProfileCPU
  • MySQL 中 count(*)、count(1) 和 count(字段名) 有什么区别?
  • 【高等数学】第七章 微分方程——第七节 常系数齐次线性微分方程
  • Flutter开发 dart语言基本语法
  • [BJDCTF2020]EasySearch
  • 错误: 找不到或无法加载主类 原因: java.lang.ClassNotFoundException
  • 谷歌开源Agent框架ADK快速入门
  • 【Conda】配置Conda镜像源
  • 无人机数字图传技术的前沿探索与应用
  • 自动布局视图来实现聊天室的界面
  • AI Agent开发学习系列 - LangGraph(3): 有多个输入的Graph
  • 小智服务器Java安装编译(xinnan-tech)版
  • 算法: 字符串part02: 151.翻转字符串里的单词 + 右旋字符串 + KMP算法28. 实现 strStr()
  • LLM Prompt与开源模型资源(3)如何写一个好的 Prompt
  • 什么叫湖仓一体
  • 质数时间(二分查找)
  • GraphRag安装过程中的报错:系统找不到指定的文件(Could not install packages due to an OSError)
  • Day25-对称二叉树-
  • PyTorch 张量核心操作——比较、排序与数据校验
  • 边缘智能网关在水务行业中的应用—龙兴物联
  • 模拟激光相机工作站版本6.0 5.2.32 6.0.44 6.031 5.2.20
  • 双机并联无功环流抑制虚拟阻抗VSG控制【simulink仿真模型实现】
  • 详解Python标准库之并发执行
  • OneCode 3.0表达式从语法到执行的全链路设计