在Mockito单元测试中未加载OSGI服务

时间:2020-03-24 12:48:24

标签: mockito osgi inject

我有几个未在Mockito中加载的服务类用于单元测试。使用@Reference和@Inject批注将服务加载到类和Sling模型中。

这种情况是,我有几个服务和Sling模型正在使用@Inject或@Reference批注加载其他服务。

public class MyModel{
    @Inject
    SomeService service;
}

public class MyService{
    @Reference
    SomeOtherService service;
}

然后,当我对服务进行单元测试时,不会加载注入的服务。如何将它们加载到模拟上下文中,以便也对其进行测试?

2 个答案:

答案 0 :(得分:0)

我发现我需要创建SomeService对象的实例,然后使用AemContext.registerInjectActivateService()方法或SlingContext.registerInjectActivateService()方法将它们注入到上下文中,以便在测试类加载时可用

答案 1 :(得分:0)

您可以在测试中的类上简单地使用嘲笑@InjectMocks注释,并提供要作为@Mock注入的服务。

相关问题