Невозможно найти @SpringBootConfiguration - PullRequest
0 голосов
/ 17 октября 2019

Я хочу создать тест JUnit для этого частного метода:

@Component
public class ReportingProcessor {

    @EventListener
    private void collectEnvironmentData(ContextRefreshedEvent event) {
    }
}

Я попробовал это:

@ContextConfiguration
@SpringBootTest
public class ReportingTest {

    @Autowired
    ReportingProcessor reportingProcessor;

    @Test
    public void reportingTest() throws Exception {

        ContextRefreshedEvent contextRefreshedEvent = PowerMockito.mock(ContextRefreshedEvent.class);
        Whitebox.invokeMethod(reportingProcessor, "collectEnvironmentData", contextRefreshedEvent);

    }
}

Когда я запускаю код, я получаю:

java.lang.IllegalStateException: Unable to find a @SpringBootConfiguration, you need to use @ContextConfiguration or @SpringBootTest(classes=...) with your test

Вы знаете, как я могу решить эту проблему?

Ответы [ 2 ]

1 голос
/ 18 октября 2019

Если у вас нет какого-либо класса, аннотированного с помощью @SpringBootApplication и известного метода main (), вам нужно нацелить класс вашего компонента на аннотацию @SpringBootTest.

Обычно я делаю это, когда ясборка библиотек и для какого-то конкретного сценария мне нужно иметь контекст Spring для их модульного тестирования.

Просто добавьте это в свой код:

@RunWith(SpringRunner.class)
@SpringBootTest(classes = ReportingProcessor.class)
public class ReportingTest {
...

Только что сделал это и тест запущен.

Редактировать: Не знаю, что именно вы пытаетесь проверить, просто хотел показать, как вы можете исправить полученную ошибку.

0 голосов
/ 17 октября 2019

Вы должны использовать @RunWith с вашим @SpringBootTest:

@RunWith(SpringRunner.class)
@SpringBootTest
public class ReportingTest {

    @Autowired
    ReportingProcessor reportingProcessor;

    @Test
    public void reportingTest() throws Exception {

        ContextRefreshedEvent contextRefreshedEvent = PowerMockito.mock(ContextRefreshedEvent.class);
        Whitebox.invokeMethod(reportingProcessor, "collectEnvironmentData", contextRefreshedEvent);

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