Весеннее тестирование - WebTestClient не удалось выполнить автоподключение. Компоненты типа «WebTestClient» не найдены

Я хочу использовать WebTestClient в своих тестах. работает так:

@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
@AutoConfigureWebTestClient
public class ControllerTest {

    @Autowired
    private WebTestClient webTestClient;

    @Test
    public void webtestClient () {
        assertNotNull(webTestClient);
    }
}

Но теперь я хочу внедрить WebTestClient во вспомогательный класс:

@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
@AutoConfigureWebTestClient
public class ControllerTest {

    @Autowired
    private Helper helper;

    @Test
    public void webtestClient () {
        helper.check();
    }
}

@Component
public class Helper {
    @Autowired
    private WebTestClient webTestClient;

    public void check() {
        assertNotNull(webTestClient);
    }
}

Тоже работает. Но Intellij показывает ошибку:

Could not autowire. No beans of 'WebTestClient' type found. more... (Strg+F1)

Новая информация: тест отлично работает в Intellij, но не при работе с maven.

Вот тестовый проект с проблемой: https://github.com/kicktipp/демо

Как я могу использовать WebTestClient в своем вспомогательном классе?

Похоже на ошибку. Сообщите о проблеме на YouTrack: youtrack.jetbrains.com/issues/ИДЕЯ

y.bedrov 21.01.2019 15:24

Спасибо за ваш комментарий. Я создал здесь задачу: youtrack.jetbrains.com/issue/IDEA-205789

Janning 21.01.2019 20:32
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
2
2
1 239
2

Ответы 2

Вы должны собрать webTestClient, прежде чем использовать его в тестах
Используйте ниже, это будет работать

    @Autowired
    ApplicationContext context;

    @Autowired
    WebTestClient webTestClient;

    @Before
    public void setup() throws Exception {

        this.webTestClient = WebTestClient.bindToApplicationContext(this.context).build();
    }

Для чего это стоит - я смог исправить это, просто явно указав аннотацию AutoConfigureWebTestClient:

@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
@AutoConfigureWebTestClient
public class MyTestClass {

}

Другие вопросы по теме