【发布时间】:2018-03-09 19:17:33
【问题描述】:
我正在为我的 Rails 应用程序编写测试。我的应用程序与处理客户付款的外部 API 通信,特别是 BrainTree。现在,我想确保与 BrainTree 通信的应用程序类正常工作,例如它正确地向 BrainTree 提交用户信息和其他参数。目标是只测试 BrainTree 和我的应用程序是否正常通信。
需要注意的一点是,BrainTree 有一个沙盒帐户。要测试我的课程,我应该:
- 使用 Capybara 和 Rspec 之类的东西编写功能测试,并从用户的角度进行测试,例如用户登录、填写表格、提交付款等。
- 编写仅提交所需信息并检查返回值的请求规范。这是我更喜欢的,但很棘手,因为 BrainTree 需要 js,而且我不确定我是否可以在请求规范中包含 js 而无需猴子修补 Rspec,我宁愿不这样做,因为我对 Rspec 和测试还很陌生一般来说。
- 编写功能和请求规范
- 编写完全不同类型的测试
我有一个功能测试,但仅用于测试外部 API 似乎很麻烦,因为它需要打开浏览器、填写表单等。在我的功能规范中,我宁愿存根外部 API 和将 API 作为单元测试进行测试。请求规范似乎更有效,但 js 要求似乎是一个障碍。
对于我在上面的场景中应该做什么,是否有最佳实践?
【问题讨论】:
标签: ruby-on-rails ruby testing rspec