目录
[一 @InjectMocks](#一 @InjectMocks)
[1.1 @InjectMocks作用](#1.1 @InjectMocks作用)
[1.2 案例1](#1.2 案例1)
[1.3 案例 2](#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 {
@Mock
private UserDao userDao;
@InjectMocks
private UserServiceImpl userServiceImpl;
@Test
public 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
代码:

解析
-
@Mock
创建
PaymentService
和InventoryService
的模拟对象,用于替代真实依赖。 -
@InjectMocks
自动完成以下操作:
-
实例化
OrderService
-
将
paymentService
和inventoryService
注入到OrderService
的对应字段中 -
等效于手动初始化:
new OrderService(paymentService, inventoryService)
-
-
测试逻辑
-
通过
when(...).thenReturn(...)
定义模拟行为 -
调用被测方法
placeOrder()
-
用
verify()
检查依赖的交互是否按预期发生
-