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 ( )?

Ответы на вопрос(2)

Ваш ответ на вопрос