【发布时间】:2012-12-04 22:34:31
【问题描述】:
我正在构建一个与 Web 服务通信的 Ruby 命令行程序。我正在使用 Cucumber 和 Aruba 来测试程序。问题是我需要控制从 Web 服务返回的数据;该程序会抓取用户 cmets 流,因此在添加新 cmets 时会经常更改。我尝试使用 WebMock 模拟 Web 服务,但这不起作用,因为 Aruba 将命令行程序转为不受 WebMock 影响的单独进程(因此它仍然与 real网络服务)。
如何使用 Cucumber 测试该程序的输出?
编辑:Web 服务将流作为 JSON 数据返回。我已经捕获了用于测试的数据快照;简而言之,我正在寻找一种方法来替换我的静态数据来代替对 Web 服务的实际调用。
或者,如果有完全不同的方式来实现这个目标,我会全力以赴。
【问题讨论】:
-
如果一切都失败了,您应该能够通过您的
hosts文件将请求重定向到为捕获的 JSON 数据提供服务的本地 Web 服务。但我希望有人能提出比这更好的解决方案:) -
@doesterr:哈哈,是的,我考虑过。但我不知道我是否可以期望其他可能想要或需要测试它的人也这样做。 ;)
-
对,这是万不得已的“解决方案”:)
标签: ruby cucumber aruba webmock