Como testar um módulo de implementação de provedor de serviços com o Junit 5?
Este é o meu módulo base que precisa de implementações de interfaces definidas no pacote myspi. Vários provedores podem oferecer implementações MyProvider. O módulo base os utiliza via implementação da interface myspi.MyProvider.
module base {
exports myspi;
uses myspi.MyProvider;
}
Este é o meu módulo de implementação de amostra que fornece a implementação MyProvider com MyProviderImpl
module myspi.provider {
provides myspi.MyProvider with myspi.provider.MyProviderImpl;
}
Tudo isso funciona bem quando eu carrego as implementações no módulo base, com
public static List<MyProvider> getMyProviders() {
var myProviders = new ArrayList<MyProvider>();
for (MyProvider myProvider : ServiceLoader.<MyProvider>load(MyProvider.class)) {
myProviders.add(myProvider);
}
return myProviders;
}
Mas o mesmo código retorna a lista vazia no código de teste do Junit 5 (ServiceLoader retorna nulo). Como posso testar os módulos do provedor de serviços com o Junit 5. Ou existe alguma alternativa ao Junit que nos permita criar módulos de teste (API de teste modularizado) que declara "usa myspi.MyProvider" nas informações do módulo e funciona bem com getMyProviders ( )?