Сервисы OSGI не загружаются в модульных тестах Mockito - PullRequest
0 голосов
/ 24 марта 2020

У меня есть несколько классов обслуживания, которые не загружаются в Mockito для модульного тестирования. Сервисы загружаются в классы и модели Sling с использованием аннотаций @Reference и @Inject.

Дело в том, что у меня есть несколько сервисов и моделей Sling, которые загружают другие сервисы с использованием аннотаций @Inject или @Reference.

public class MyModel{
    @Inject
    SomeService service;
}

public class MyService{
    @Reference
    SomeOtherService service;
}

Тогда, когда я провожу тестовый модуль, сервисы не загружаются. Как мне загрузить их в контекст макета, чтобы они тоже тестировались?

Ответы [ 2 ]

0 голосов
/ 24 марта 2020

Вы можете просто использовать аннотацию mockito @InjectMocks для тестируемого класса и предоставлять сервисы, которые будут внедряться как @ Mock.

0 голосов
/ 24 марта 2020

Я обнаружил, что мне нужно создать экземпляр объекта SomeService и затем использовать метод AemContext.registerInjectActivateService () или метод SlingContext.registerInjectActivateService (), чтобы вставить их в контекст, чтобы они были доступны, когда загружаемые классы загружаются .

...