Testing 带回调的集成测试

Testing 带回调的集成测试,testing,Testing,当涉及异步回调时,自动化集成测试的最佳方法是什么 比如说,我有一个模块A,当我调用该模块上的某个东西时,它会立即返回一个响应,作为测试的一部分,我可以验证该响应。但是除了即时响应之外,回调应该在一定的时间内发生(比如说5分钟),它提供了测试需要评估的额外信息 本质上,我希望立即对响应执行一个测试,然后告诉一些测试预期在一定时间内回调,并验证这一点。如果在时间范围内没有发生回调,或者回调有意外响应,则测试将失败 是否有一个持续集成工具或其他工具可用于执行此类测试?如果可能,我会修改回调以设置回调时

当涉及异步回调时,自动化集成测试的最佳方法是什么

比如说,我有一个模块A,当我调用该模块上的某个东西时,它会立即返回一个响应,作为测试的一部分,我可以验证该响应。但是除了即时响应之外,回调应该在一定的时间内发生(比如说5分钟),它提供了测试需要评估的额外信息

本质上,我希望立即对响应执行一个测试,然后告诉一些测试预期在一定时间内回调,并验证这一点。如果在时间范围内没有发生回调,或者回调有意外响应,则测试将失败


是否有一个持续集成工具或其他工具可用于执行此类测试?

如果可能,我会修改回调以设置回调时间。在您的测试中,您可以让它持续1秒,通过一个模拟回调,并自动验证回调是否在正确的时间调用。

我想我有一个使用jenkins的解决方案:

  • 运行一系列的测试来进行调用,这些调用最终会导致一些异步回调
  • 测试完成后,为一个单独的“回调”作业启动一个构建,该作业延迟N秒(您认为处理将花费的最大时间)
  • 回调发生在某个服务器的某个位置,它们被延迟的“回调”作业记录下来以供查看
  • 回调作业运行并验证记录的回调。如果日志缺少对作业期望的回调的引用,则可以编写一个在这种情况下将失败的测试
这很可能涉及为回调创建一个参数化作业,因为它需要知道在运行时要检查哪个回调日志(即,检查回调日志以了解正常构建90)


目前有点累,所以这可能没有意义,但如果需要的话,我很乐意澄清。

对不起,让我更清楚地说明这一点。“回调”是http请求,而不是对对象或方法的调用。此外,由于涉及到处理,回调发生之前所需的时间永远无法定义,但可以假定回调发生在特定的时间范围内(少于5分钟)