无限循环集成测试



我需要运行集成测试,但遇到了一些问题,我知道人们会说的第一件事是将无限循环中的内容提取到方法中并进行测试,但这并不那么简单,因为我们正在创建一些东西,这些东西在运行时从工厂使用,我想测试应用程序的整个流程通过集成测试。

while (true) {
retrieveMessage();
}

我想接收我发送的一条消息,然后退出(仅在部署时从集成测试中退出,而不是从正在运行的应用程序退出(。

我想过做这样的事情

if ("test".equals(getSpringActiveProfile()) {
break;
}

但这将是不好的做法,它会专门为测试写入我的代码库吗?

任何想法或想法表示赞赏。

谢谢

一般来说,程序应该有一种"自然"的退出方式,无限循环本身就是一种代码气味......我会寻找这样的方法:

boolean keepRunning = true; //even better as private field, then your class can get a "public void stop() { keepRunning = false; } method or something similar...
while(keepRunning) {
//do whatever you need
}

这可以通过您的测试来控制,并且在生产代码中,当某些杀戮事件到来清理所有内容时,它可用于杀死应用程序......

最新更新