SpringBoot 프로그램이 있습니다. junit 테스트 케이스 중 하나에 문제가 있습니다.
SpringBoot 버전 : 1.5.9.RELEASE
내 코드는 JdbcTemplate을 또는 jobCalcOrderRepository와 IDEA에서 실행하면 바로 결과를 얻을 수있는이JdbcTemplate.queryXXX가 최신 데이터를 가져올 수 없습니다.
@Rollback
@Transactional
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(classes = PreloadJobApplication.class)
@ActiveProfiles("test")
public class PreloadProcessorServiceTest {
@Autowired
PreloadProcessorService testService;
@Autowired
private JdbcTemplate jdbcTemplate;
@Autowired
private JobCalcOrderRepository jobCalcOrderRepository;
@Test
public void my_test_case() {
CreateTestDataWithJdbcTemplate.save(JobPreloadSoEntity.builder()
...
.build(),
jdbcTemplate);
testService.methodToTest();
// List<JobCalcOrderEntity> jobOrders = jobCalcOrderRepository.findAll();
// Assert.assertNotNull(jobOrders);
// Assert.assertEquals(9, jobOrders.size());
long jobCount = jdbcTemplate.queryForObject("select count(*) from Job_Calc_Order", Long.class);
Assert.assertEquals(9, jobCount);
}
}
이 코드는 같다.
1.Add에 Thread.sleep (5000) 읽기 데이터 이전 : 명령 줄 "Gradle을 테스트"나는이 방법을 시도해야
에서 실행할 때 제로를 얻을.
2. queryForObject를 세 번 실행하고 마지막 결과를 테스트하십시오.
모두 실패했습니다.이 문제를 해결할 수있는 사람은 누구입니까? 고맙습니다.