在运行Calabash测试时如何模拟后端交互

7

我正在为一个现有应用程序集成cucumber测试。该应用程序与后端交互非常频繁,最简单的情况是注册用户。

为了使测试可重复,我不能违背(真实)后端(原因之一是无法使用相同电子邮件注册两个用户)。

我想知道有哪些选项可以模拟后端行为并提供模拟响应。对于单元测试,我知道Nocilla和其他几个框架。当然,将它们集成到calabash测试中是不起作用的。

另一种选择是运行一个真实的服务器,从calabash测试中控制该服务器以控制网络。但那似乎有点过头了。另一个选择是在calabash目标中具有模拟对象,我可以通过calabash后门机制进行控制。

我怀疑这不是唯一的选择。所以我的问题是:是否有更优雅的方法来做到这一点?


您可以尝试使用已知前缀的自动生成用户电子邮件来注册新用户。每当需要时,您都可以使用该前缀进行搜索,并一次性从服务器上删除所有内容。 - Chathura Palihakkara
这不仅涉及到电子邮件,还涉及每个依赖于特定状态的后端交互。但是现在我们选择了一个小的Sinatra服务器,其响应可以通过在calabash步骤定义中发送PUT请求来配置。 - mAu
1个回答

3

由于我直到今天都没有得到其他反馈,所以我将回答自己的问题。

我们选择创建一个非常简单的后端模拟。我们使用了Sinatra,但是使用node.js或类似技术会得到相同的结果。该模拟可以通过一个简单的REST API进行控制。

在步骤定义中,我们根据正在运行的场景适当配置我们的模拟后端。这有点繁琐,因为模拟必须与真实后端一起演进,但是直到今天,它感觉像是一个强大的解决方案。


3
您能再详细说明一下您是如何做到这一点的吗?您是否修改了应用程序指向测试目标的基本URL?您是否使用某种代理来重定向流量?我正在拼命地试图弄清楚这些东西。 - s73v3r

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接