@ConfigProperty в JerseyTest - PullRequest
       116

@ConfigProperty в JerseyTest

0 голосов
/ 05 августа 2020

Мы внедряем свойство внутри нашего класса (который является конечной точкой REST) ​​следующим образом:

@Inject
@ConfigProperty(name = "PassInstance") String uniquePass;

Мы храним это свойство в файле microprofile-config.properties, и оно работает нормально.

Мы хотели бы протестировать это с помощью JUnit 5, JerseyTest и Mockito.

Мы вообще не можем имитировать ConfigProperty.

Но более того, когда мы вызываем нашу конечную точку используя target ("endpoint"). request.get / post , он не работает с ошибкой:

There was no object available for injection at 
      SystemInjecteeImpl(requiredType=String,parent=RESTServiceClass,
      qualifiers={@org.eclipse.microprofile.config.inject.ConfigProperty
      (name=PassInstance, 
      defaultValue=org.eclipse.microprofile.config.configproperty.unconfigureddvalue)},
      position=-1,optional=false,self=false,unqualified=null,333650968)

Я прочитал следующую статью https://github.com/payara/Payara/issues/4364, где разработчик предлагает использовать отражение и установить значение. Когда я запускаю в тесте следующий код:

Annotation[] annotations = someObj.getClass().getDeclaredAnnotations();

Этот массив имеет только следующее:

@javax.ejb.Stateless(name=, description=, mappedName=)
@javax.ejb.LocalBean()
@javax.ws.rs.Path(value=/pathtorest)

Как я могу ввести это и правильно протестировать мою службу. Я использую JUnit 5, MP 1.2, Mockito, CDI.

Спасибо.

...