Это мой базовый модуль, которому нужны реализации интерфейсов, определенных в пакете myspi. Различные провайдеры могут предлагать реализации MyProvider. Базовый модуль использует их через реализацию интерфейса myspi.MyProvider.
module base {
exports myspi;
uses myspi.MyProvider;
}
Это мой пример модуля реализации, который предоставляет реализацию MyProvider с помощью MyProviderImpl.
module myspi.provider {
provides myspi.MyProvider with myspi.provider.MyProviderImpl;
}
Все это отлично работает, когда я загружаю реализации в базовый модуль с
public static List<MyProvider> getMyProviders() {
var myProviders = new ArrayList<MyProvider>();
for (MyProvider myProvider : ServiceLoader.<MyProvider>load(MyProvider.class)) {
myProviders.add(myProvider);
}
return myProviders;
}
Но тот же код возвращает пустой список в тестовом коде Junit 5 (ServiceLoader возвращает null). Как я могу протестировать модули поставщика услуг с помощью Junit 5. Или есть какая-либо альтернатива Junit, которая позволяет нам создавать тестовые модули (модульный тестовый API), который объявляет "использует myspi.MyProvider" в информации о модуле и отлично работает с getMyProviders ( )?
new MyProviderImpl()
? Вы хотите протестировать реализацию или конфигурацию? - person johanneslink   schedule 04.09.2018