在 Mockito 中注释模拟对象

Annotate mocked objects in Mockito

我需要使用带注释的 Mockito 模拟对象,然后利用该注释。有没有办法向模拟对象添加注释?

一种方法:

public class YourTest {
  @Order public static class YourAnnotatedClass extends YourClass {}

  @Mock YourAnnotatedClass yourAnnotatedClass;

  // ...
}

这将确保您的类型在其层次结构中具有您想要的注释。 Mockito 的覆盖基于 Proxy/CGLIB/ByteBuddy 而不是完全基于要在反射中注释或使用的任何适当的 class。

事实上,可能有几个原因将 subclass 构建为假的或手动模拟,而根本不使用 Mockito,例如:

  • 如果注释需要位于层次结构中最低(最具体)的子class
  • 如果您不需要任何其他 Mockito 功能
  • 如果需要 annotated/subclassed 的 class 是正在测试的 class,因为您应该测试 class,因为它应该被使用( subclass) 而不是 Mockito 的 mocks/stubs