0

我有一个使用 Recurly 进行交易的 Rails 应用程序。我正在尝试为我编写的一些辅助函数编写自动化测试。

一个超级简单的函数示例...

def status_for_display
   transaction.status.capitalize
end

为了测试这些功能,我需要一个Recurly::Account对象以及关联的Recurly::Transaction对象。

我尝试过使用Recurly::Account.create&Recurly::Transaction.create但我似乎无法让交易与帐户相匹配。

我还想知道使用 VCR gem 来实现这一点是否更有意义。在这种情况下,我将如何去做呢?我从来没有真正设法正确设置 VCR。

4

1 回答 1

1

总的来说,VCR 是即插即用的。配置并启用它后,它会拦截所有 HTTP 请求并尝试播放磁带中的数据。但是,VCR 的问题在于它是特定于请求数据的。为了让它正常工作,你需要确保你的测试总是向 Recurly 发送完全相同的请求参数。你可以通过让它跳过某些事情来解决这个问题,但这通常是一种痛苦。

另一种选择是直接使用 Webmock 之类的东西,并为您的 Recurly 调用存储您自己的“已知响应”,但随后由您来确保您的响应与 API 保持同步。

最后,我可能会建议走 VCR 路线,但要构建测试结构,以便您了解好的和坏的测试场景,这样您才能获得磁带的真正好处。

于 2014-12-09T20:02:18.350 回答