假设集成测试中有多个请求,其中一些是本地sphinx调用(例如定位器)。
我们是否应该将这些sphinx调用的完整响应存根,或者,因为它是一个集成测试,我们想要在没有存根的情况下切除整个测试。如果是这种情况,在sphinx失败,没有互联网连接或第三方服务器无响应的情况下,我们如何保持独立测试。
给出理由。
由于
答案 0 :(得分:2)
我想你回答了自己的问题。如果你想与你的“狮身人面像”东西隔离(我认为它是一些边界)你最好嘲笑它并运行其他正常运行的其他东西,作为集成测试。这样,就像你自己说的那样,你可以测试连接丢失和其他意外情况。
答案 1 :(得分:2)
我通常会在一个单元测试中编写两个级别的测试,这些测试会截断昂贵的方法调用。另一个是集成测试。
答案 2 :(得分:0)
如果您的狮身人面像问题是它正在其他地方运行。可能在互联网上,它不在你的控制之下,你可以考虑使用fakeweb。它允许您捕获转到Internet的请求并使用预定义的答案进行响应。如果您的sphinx服务器位于其他地方,您可以捕获系统请求并为其提供测试所需的响应。这样您就不需要编写模拟,仍然可以使用(并测试)通常发送请求的同一段代码。
如果这对您的情况有用,请查看the official page。对我来说,这让事情变得更加容易。