我有几个服务类未在Mockito中加载以进行单元测试。使用@Reference和@Inject批注将服务加载到类和Sling模型中。
这种情况是我有几个服务和Sling模型正在使用@Inject或@Reference批注加载其他服务。
public class MyModel{
@Inject
SomeService service;
}
public class MyService{
@Reference
SomeOtherService service;
}
然后,当我对服务进行单元测试时,不会加载注入的服务。如何将它们加载到模拟上下文中,以便也对其进行测试?
我发现我需要创建SomeService对象的实例,然后使用AemContext.registerInjectActivateService()方法或SlingContext.registerInjectActivateService()方法将它们注入到上下文中,以便在加载要测试的类时可以使用它们。
您可以简单地在被测类上使用嘲笑@InjectMocks批注,并提供要作为@Mock注入的服务。