我正在构建一个与网络服务通信的 Ruby 命令行程序。我正在使用 Cucumber 和 Aruba 来测试程序。问题是我需要控制从网络服务返回的数据;该程序获取用户评论流,因此随着新评论的添加,这可能会经常更改。我尝试使用 WebMock 模拟 Web 服务,但这没有用,因为 Aruba 将命令行程序分离到一个不受 WebMock 影响的单独进程(因此它仍然与 真实网络服务)。
如何使用 Cucumber 测试该程序的输出?
编辑:Web 服务将流作为 JSON 数据返回。我已经捕获了用于测试的数据快照;简而言之,我正在寻找一种方法来替换我的静态数据来代替对 Web 服务的实际调用。
或者,如果有完全不同的方法来实现这个目标,我会洗耳恭听。
最佳答案
Aruba 提供了一种模式,让您可以“在进程中”运行事物,这将允许您使用 WebMock 或 VCR。这是一篇解释如何做到这一点的博客文章:
http://georgemcintosh.com/vcr-and-aruba/
或者,您可以考虑编写一个新的二进制文件,首先加载 VCR 或 WebMock,然后加载并执行您的主二进制文件,并让您的测试运行该二进制文件。
关于ruby - 如何测试与 Web 服务通信的 Ruby 命令行程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13713162/