首页 文章

有没有办法调用延迟来测试需要很长时间来处理事务的系统?

提问于
浏览
2

我们正在使用JUnit(和Maven)来测试将文档正确插入MarkLogic服务器 . 被摄取的文件非常大,并且在摄取时经历复杂且耗时的过程,通常需要几十秒或几分钟才能完成 .

是否有一种很好的清洁方式来定期轮询我们在系统中寻找的结果?如果我们可以每10秒轮询一次,以满足我们的需求 . 我见过人们说在Java中使用Thread.sleep()但这不是一个合适的解决方案 . 我在JUnit中有RTFM这个并没有找到解决方案 . 也许Maven可以参与解决方案?谢谢 .

2 回答

  • 0

    对于您的测试,您可以尝试Awaitility framework .

    您可以设置超时,也可以设置检查长任务完成的回调(如果任务是异步的) .

  • 0

    我使用循环和Thread.sleep来处理我需要执行此操作的罕见实例 . (它通常用于队列,所以我不会等待超过20秒 . )每隔X秒尝试一次,然后在Y秒后放弃并失败 . Nico的awaitility解决方案听起来更好 .

    Maven无法解决这个问题 . Maven是一个构建服务 . 它可以帮助的唯一方法是使用“存根”库而不是真正的Web服务进行测试 . 但这不是你想要测试的 .

相关问题