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

问题描述 投票:0回答:2

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

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

public class MyModel{
    @Inject
    SomeService service;
}

public class MyService{
    @Reference
    SomeOtherService service;
}

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

mockito osgi inject
2个回答
0
投票

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


0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.