Не удалось автоматически подключить JobLauncherTestUtils - PullRequest
0 голосов
/ 14 января 2020

Я пытаюсь протестировать простое приложение Spring Batch.

Используя документацию Spring Batch в качестве руководства ( найдено здесь ), я создал следующий класс тестирования:

import org.junit.runner.RunWith;
import org.springframework.batch.test.JobLauncherTestUtils;
import org.springframework.batch.test.context.SpringBatchTest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringRunner;

import static org.junit.jupiter.api.Assertions.assertNotNull;

@SpringBatchTest
@RunWith(SpringRunner.class)
@ContextConfiguration(classes = BatchConfig.class)
class BatchConfigTest {
    @Autowired
    private JobLauncherTestUtils jobLauncherTestUtils;

    @Test
    void userStep() {
        assertNotNull(jobLauncherTestUtils, "jobLauncherTestUtils should not be null");
    }
}

Согласно документации @SpringBatchTest следует вводить бин JobLaucherTestUtils. Однако, когда я запускаю тест, утверждение не выполняется. Я также попытался определить bean-компонент во внутреннем классе конфигурации и получил тот же результат:

    static class TestConfiguration {
        @Autowired
        @Qualifier("userJob")
        private Job userJob;

        @Bean
        public JobLauncherTestUtils jobLauncherTestUtils() {
            JobLauncherTestUtils utils = new JobLauncherTestUtils();
            utils.setJob(userJob);
            return utils;
        }
    }

Есть ли что-то, что я пропускаю? Полный исходный код можно найти здесь .

1 Ответ

1 голос
/ 15 января 2020

Я использую Spring Batch v4.2.0 и JUnit 5

Вы используете @RunWith(SpringRunner.class) для JUnit 4. Вам нужно использовать @ExtendWith(SpringExtension.class) для тестов JUnit 5:

@SpringBatchTest
@ExtendWith(SpringExtension.class)
@ContextConfiguration(classes = BatchConfig.class)
class BatchConfigTest {
   // ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...