如何将 @InjectMocks 用于另一个要模拟的 Class 的依赖项?

How To Use @InjectMocks For A Dependency For Another Class To Be Mocked?

假设我有一个 class :

   public class Boy
          {
                 @Inject 
                 @Named("birthDay")
                 BirthDay bday;
          }

我想模拟它,但问题是生日 class 本身使用了一个我也想模拟和控制的依赖项,我不能同时使用 @InjectMocks 和 @Mock class,你如何实现同样的目标?

为什么需要在 mock 中注入一些东西? 您需要有两个测试 classes 来测试 BoyBirthDay classes.

在这里你可以测试一个Boyclass

的逻辑
public class BoyTest{
  @Mock
  private BirthDay brithday;

  @InjectMock
  private Boy boy;
}

BirthDay 的逻辑应该有它自己的测试 class。

public class BirthDayTest {
  @Mock
  private Dependency dependency ;

  @InjectMock
  private BirthDay brithday;
}

所以,你应该假设你的模拟 returns 一些你需要的数据。并检查您的被测单元是否按给定数据的预期工作。