java - 如何使用 @InjectMocks 作为另一个要模拟的类的依赖项?

标签 java spring dependency-injection mockito spring-test

假设我有一个类:

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

我想模拟它,但问题是 BirthDay 类本身使用了一个我也想模拟和控制的依赖项,我不能在同一个类上同时使用 @InjectMocks 和 @Mock,你该怎么做达到同样的效果?

最佳答案

为什么需要在模拟中注入(inject)一些东西? 您需要有两个测试类来测试 BoyBirthDay 类。

在这里您需要测试 Boy 类的逻辑

public class BoyTest{
  @Mock
  private BirthDay brithday;

  @InjectMock
  private Boy boy;
}

BirthDay 的逻辑应该有它自己的 Test 类。

public class BirthDayTest {
  @Mock
  private Dependency dependency ;

  @InjectMock
  private BirthDay brithday;
}

因此,您应该假设您的模拟返回了您需要的一些数据。并检查您的被测单元是否按照给定数据的预期工作。

关于java - 如何使用 @InjectMocks 作为另一个要模拟的类的依赖项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39888363/

相关文章:

java - hibernate 环境 : Initializing Envers Proxies

java - 遗留代码与 Spring 的集成 : java. lang.NoClassDefFoundError: org/springframework/context/ApplicationContextAware

html - spring thymeleaf - 从 html 表中删除对象并将 id 传递给 Controller

java - 如何在特定包中获取带有某些注释的类

java - 是否可以通过它的 key 同步 ConcurrentHashMap 更新?

java - 如果 Java 中的字符串包含数字,则拆分该字符串 - 但在结果中包含数字?

java - 是否可以获得通用参数的类?

java - HibernateTransactionManager 或 JpaTransactionManager

dependency-injection - AngularDart 依赖注入(inject)是如何工作的?

php - 禁用 SonataUserBundle sonata.user.admin.group 服务