运行葫芦测试时如何模拟后端交互
Posted
技术标签:
【中文标题】运行葫芦测试时如何模拟后端交互【英文标题】:How to mock backend interaction when running calabash tests 【发布时间】:2013-10-22 16:28:34 【问题描述】:我正处于为现有应用程序集成黄瓜测试的阶段。该应用程序与后端进行大量交互。最简单的情况是用户注册。
为了使测试可重复,我不能违背(真实)后端(出于多种原因,一个无法使用相同的电子邮件注册两个用户)。
我想知道我必须使用哪些选项来模拟后端行为并提供模拟响应。对于单元测试,我知道Nocilla 和其他几个框架。集成它们当然不适用于葫芦测试。
另一种方法是运行一个真正的服务器,我可以通过葫芦测试来控制它来控制网络。但这似乎有点矫枉过正。另一种选择是在我可以通过calabash backdoor 机制控制的葫芦目标中包含模拟对象。
我怀疑这不是唯一的选择。所以我的问题是:有没有更优雅的方式来做到这一点?
【问题讨论】:
您可以尝试自动生成具有已知前缀的用户电子邮件来注册新用户。并且只要您需要,您可以使用该前缀进行搜索并立即从服务器中删除所有内容。 这不仅与电子邮件有关,还与取决于特定状态的每个后端交互有关。但是现在我们使用了一个小型 Sinatra 服务器,可以通过从葫芦步骤定义中发送 PUT 请求来配置其响应。 【参考方案1】:由于直到今天我才收到其他反馈,我将回答我自己的问题。
我们选择了为我们的后端创建一个非常简单的模拟的方式。我们使用了 Sinatra,但是 node.js 或类似的技术会导致相同的结果。可以通过简单的 REST API 控制模拟。
在步骤定义中,我们为运行场景适当地配置了模拟后端。这有点开销,因为模拟必须随着真实后端的发展而发展,但直到今天它仍然是一个强大的解决方案。
【讨论】:
您能否进一步了解一下您是如何做到的?您是否修改了应用程序指向的测试目标的基本 URL?您是否使用某种代理来重定向流量?为了弄清楚这些东西,我绝对是在扯头发。以上是关于运行葫芦测试时如何模拟后端交互的主要内容,如果未能解决你的问题,请参考以下文章