sormuras.github.io/blog/2018-09-11-testing-in-the-modular-world
ой базовый модуль, которому нужны реализации интерфейсов, определенных в пакете 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 ( )?