У меня есть реализация ApplicationRunner с именем RefAppRunner, которая выполняет некоторую логику.
Я хотел бы написать модульный тест на основе SpringBoot для проверки этого ApplicationRunner code> ведет себя так, как ожидалось, в зависимости от получаемых им ApplicationArguments.
Реализация также имеет несколько полей @Autowired.
Каков рекомендуемый способ модульного тестирования такого компонента в приложении Spring Boot?
Я хочу, чтобы весь контекст на основе Spring инициализировался так, как будто приложение запускается правильно, но я хочу для предоставления вариантов ApplicationArguments
Существует ли рекомендуемый способ написания таких тестов?
Я закомментировал @SpringBootTest потому что, если он включен, то пользовательский ApplicationRunner будет вызван до вызова тестового метода run.. это означает, что нет контроля над значениями, передаваемыми в реализацию.
Вот мой текущий модульный тест Java в проекте Spring Boot:
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.DefaultApplicationArguments;
import org.springframework.boot.test.context.SpringBootTest;
//@SpringBootTest
public class RefAppRunnerTest
{
@Autowired
private RefAppRunner refAppRunner;
@Test
public void run() throws Exception {
refAppRunner.run(new DefaultApplicationArguments(new String[]{}));
}
}
RefAppRunner — это реализация ApplicationRunner:
@Component
public class RefAppRunner implements ApplicationRunner {
@Override
public void run(ApplicationArguments args) {
// ..
}
}
Но я получаю следующую ошибку:
java.lang.NullPointerException: Cannot invoke "com.apps.referenceapp.RefAppRunner.run(org.springframework.boot.ApplicationArguments)" because "this.refAppRunner" is null
at com.apps.referenceapp.RefAppRunnerTest.run(RefAppRunnerTest.java:16)
Подробнее здесь: https://stackoverflow.com/questions/784 ... er-impleme
Лучшая практика написания модульного теста пользовательской реализации Spring ApplicationRunner и передачи в нее вариант ⇐ JAVA
Программисты JAVA общаются здесь
1715381757
Anonymous
У меня есть реализация ApplicationRunner с именем RefAppRunner, которая выполняет некоторую логику.
Я хотел бы написать модульный тест на основе SpringBoot для проверки этого ApplicationRunner code> ведет себя так, как ожидалось, в зависимости от получаемых им ApplicationArguments.
Реализация также имеет несколько полей @Autowired.
Каков рекомендуемый способ модульного тестирования такого компонента в приложении Spring Boot?
Я хочу, чтобы весь контекст на основе Spring инициализировался так, как будто приложение запускается правильно, но я хочу для предоставления вариантов ApplicationArguments
Существует ли рекомендуемый способ написания таких тестов?
Я закомментировал @SpringBootTest потому что, если он включен, то пользовательский ApplicationRunner будет вызван до вызова тестового метода run.. это означает, что нет контроля над значениями, передаваемыми в реализацию.
Вот мой текущий модульный тест Java в проекте Spring Boot:
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.DefaultApplicationArguments;
import org.springframework.boot.test.context.SpringBootTest;
//@SpringBootTest
public class RefAppRunnerTest
{
@Autowired
private RefAppRunner refAppRunner;
@Test
public void run() throws Exception {
refAppRunner.run(new DefaultApplicationArguments(new String[]{}));
}
}
RefAppRunner — это реализация ApplicationRunner:
@Component
public class RefAppRunner implements ApplicationRunner {
@Override
public void run(ApplicationArguments args) {
// ..
}
}
Но я получаю следующую ошибку:
java.lang.NullPointerException: Cannot invoke "com.apps.referenceapp.RefAppRunner.run(org.springframework.boot.ApplicationArguments)" because "this.refAppRunner" is null
at com.apps.referenceapp.RefAppRunnerTest.run(RefAppRunnerTest.java:16)
Подробнее здесь: [url]https://stackoverflow.com/questions/78462845/best-practice-for-writing-unit-test-of-a-custom-spring-applicationrunner-impleme[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия