我需要為我的應(yīng)用程序創(chuàng)建一個集成測試。我使用@SpringBootTest(classes = {Application.class})注釋來啟動它,但它的啟動需要時間。那么當(dāng)我的應(yīng)用程序準(zhǔn)備好時,我如何運(yùn)行測試?問題出在 kafka 偵聽器中:@SpringBootApplicationpublic class Application { @Autowired private KafkaConsumeHandler kafkaConsumeHandler; public static void main(String[] args) { SpringApplication.run(Application.class, args); } @KafkaListener(topics = "${kafka.topics.test}", containerFactory = "kafkaListenerContainerFactory")public void listenRegistred(KafkaMessage consumeKafka) { kafkaConsumeHandler.handleStartProcess(consumeKafka);}如果我嘗試在測試中立即發(fā)送消息,則偵聽器將無法捕捉到它們。所以我在發(fā)送之前使用了一點暫停。@RunWith(SpringRunner.class)@SpringBootTest(classes = {Application.class})@DirtiesContextpublic class ProcessTest { @ClassRulepublic static KafkaEmbedded embeddedKafka = new KafkaEmbedded(1, true, "testTopic");@Testpublic void sendTestRegistred() throws Exception { Thread.sleep(5000); // Need a delay to boot an application ...}
添加回答
舉報
0/150
提交
取消