Как добавить зависимость inject (dev) в интеграционный тест - PullRequest
0 голосов
/ 05 ноября 2019

Я создаю API с зависимой инъекцией (зависимость является классом обслуживания). Это легко сделать. Однако в интеграционном тесте всегда происходит сбой.

Сообщение об ошибке равно

sh.hk2.api.UnsatisfiedDependencyException: в SystemInjecteeImpl не было объекта, доступного для инъекции. (requiredType = ConvertService, parent = ImportEltResource, qualifiers = {}, position = 0, необязательный = false, self = false, unqualified = null, 866909318) "

Это API остальных, и он называетсяс помощью следующего кода:

    Response response = ClientBuilder.newClient()
                                     .target(url)
                                     .request()
                                     .header("Authorization", this.authToken)
                                     .post(Entity.entity(body, APPLICATION_JSON));

Как добавить сюда инжектор ConvertService, чтобы избежать появления этого сообщения об ошибке?

шаг 1: Создать ApplicationBinder с помощью:

public class ApplicationBinder extends AbstractBinder {
    @Override
    protected void configure() {
        bind(ConvertService.class).to(ConvertService.class);
    }
}

1 Ответ

0 голосов
/ 07 ноября 2019

Устранена проблема с помощью следующих шагов:

step1: переопределить метод run () с помощью следующего кода: super.run(apiConfiguration, environment); environment.jersey().getResourceConfig() .register(new ApplicationBinder());

step2: внедрить ConvertService в новый созданный API;

step3: создать класс ApplicationBinder: public class ApplicationBinder extends AbstractBinder { @Override protected void configure() { bind(ConvertService.class).to(ConvertService.class); } }

Затем он решает проблему внедрения зависимостей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...