Прочитайте несколько блогов о тестировании весенней партии и настройте тест соответственно (см. Ниже).Тест завершен.Однако у меня есть два вопроса:
- Как я могу быть уверен, что утверждение статуса работы не слишком рано?Работа начинается асинхронно.Возможно, он еще не готов, когда начнется утверждение.
- После того, как работа завершена, я хотел бы сделать некоторые утверждения.Однако клиент (т.е. тест) и сервер работают в двух разных потоках.Если я правильно понимаю, то мне придется запросить через
JdbcTemplate
или реализовать возможность запроса на сервере, например, через rest (что тогда будет производительным кодом).Это верно?Есть ли другие возможности?
Тестовый код:
@SpringBootTest
@RunWith(SpringRunner.class)
@DirtiesContext(classMode = DirtiesContext.ClassMode.BEFORE_EACH_TEST_METHOD)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
public class FooJobTest {
@Inject
private Job fooBatchJob;
@Inject
private JobLauncher jobLauncher;
private JobLauncherTestUtils jobLauncherTestUtils;
@Before
public void setUp() {
jobLauncherTestUtils = new JobLauncherTestUtils();
jobLauncherTestUtils.setJob(fooBatchJob);
jobLauncherTestUtils.setJobLauncher(jobLauncher);
}
@Test
public void testFooJob() {
final JobExecution jobExecution = jobLauncherTestUtils.launchJob();
assertThat(jobExecution.getStatus()).isEqualTo(BatchStatus.COMPLETED);
// would like to query the database
}
}