集成测试 - 模仿预期的延迟

时间:2012-09-03 09:39:06

标签: unit-testing integration-testing rhino-mocks

总结

如何创建模仿外部系统预期延迟的“集成”测试?

详细

我有一个应用程序“Main”,它与多个外部系统(通过Web服务)进行通信,我将其称为“合作伙伴”。

我对合作伙伴的内部运作不感兴趣,但我需要对Main进行全面测试。

对于Main我目前有:

  • 每个单独的可测试块的单元测试[所以在每个“级别”(n层)测试每个类的每个公共方法,并存根每个依赖]
  • 自上而下测试的集成测试(因此测试Presentation层上的所有公共方法,只存储这些合作伙伴Web服务)

我还想要创建一些集成测试,以确保MAIN中的代码提供正确的性能。

什么是“正确的表现”?好吧,产品经理可以说“所有视图必须在2秒内返回数据”。我知道(平均而言)对合作伙伴的调用需要(比方说)1.5秒,因此我可以使用秒表编写我的积分测试,如果主代码在0.5秒(2 - 1.5)内完成则会通过。但是,在与同事的讨论中,有人建议伙伴的Stub应该包括1.5秒的预期延迟,因此我的测试应该是主要代码加上伙伴的存根应该在PM规定的2秒内完成。

的QU:

  1. 建议的行为是什么?
  2. 如果按照建议,如何使用Rino Mocks进行存根?
  3. 谢谢大家

    格里夫

1 个答案:

答案 0 :(得分:0)

“所有视图必须在2秒内返回数据”没有意义。在限制响应时间时,还应考虑负载。当每10秒钟有1个请求时,您的视图可能会在2秒内返回。但是当每秒有10k请求时,你的响应时间会“稍微”一些。更好的性能要求是“当负载低于每秒z次请求时,x%的响应将不会超过y秒”或类似的东西。

单元测试延迟也毫无意义。你应该进行全面的性能测试。选择一个现有工具,准备一些客户端节点(使用该工具控制),针对测试服务器运行记录/脚本客户端请求,并检查响应时间,CPU和内存使用情况。然后将一个或模式节点添加到您的系统并检查系统如何缩放