当前位置: 首页 > 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.dtcms.com/a/311955.html

相关文章:

  • wgd v1.1.2 安装与使用-生信工具056
  • Java 字符串常量池 +反射,枚举和lambda表达式
  • 【数据结构】栈的顺序存储(整型栈、字符栈)
  • Postman四种请求教程
  • unsloth - LLM超级轻量级微调框架
  • ollama 多实例部署
  • 语音识别数据集
  • 【ROS2】ROS2节点Node机制与常用命令行
  • Autosar Nm-网管报文PNC停发后无法休眠问题排查
  • 决策树算法:三大核心流程解析
  • Agents-SDK智能体开发[4]之集成MCP入门
  • Qt 槽函数被执行多次,并且使用Qt::UniqueConnection无效【已解决】
  • Python编程基础与实践:Python文件处理入门
  • 智能手表:MPU6050和水平仪,动态表情包
  • 第14届蓝桥杯Python青少组中/高级组选拔赛(STEMA)2023年1月15日真题
  • Qemu-NUC980(二):时钟clock代码添加
  • 驾驶场景玩手机识别:陌讯行为特征融合算法误检率↓76% 实战解析
  • 如何修复非json数据
  • 兰空图床部署教程
  • 从C++0基础到C++入门(第十五节:switch语句)
  • 工具包:位图格式一键生成可无限放大的矢量图SVG/EPS及CAD文件DXF
  • 我的世界模组开发教程——物品item(1)
  • 建筑施工场景安全帽识别误报率↓79%:陌讯动态融合算法实战解析
  • 深入 Vue v-model
  • SpringBoot启动项目详解
  • MC0351区间询问和
  • MybatisPlus-自动生成代码
  • 【走遍美国精讲笔记】第 1 课:林登大街 46 号
  • 深入 Go 底层原理(四):GMP 模型深度解析
  • 编译器与解释器:核心原理与工程实践