【问题标题】:Rails mock call FROM external web service?Rails 模拟调用来自外部 Web 服务?
【发布时间】:2017-07-21 06:56:53
【问题描述】:

我看过很多关于如何在测试期间模拟外部服务请求以提高测试套件的速度并使它们即使在没有使用 Webmock 或 VCR 等 gem 连接的情况下也能正常运行的帖子。

现在我有一个从外部服务调用的路由。即外部服务发布到我的应用程序。我怎么能嘲笑它?

【问题讨论】:

  • 您可以使用其他人的法拉第宝石来拨打电话。
  • 有没有办法记录一个真实的通话?调用它时有很多非常长的参数。
  • 可能有,但我不知道。

标签: ruby-on-rails testing rspec-rails


【解决方案1】:

现在我有一个从外部服务调用的路由。即 外部服务 POST 到我的应用程序。

这意味着您的应用程序通过您的控制器之一提供公共 API。要测试公共 API,您只需像测试控制器时一样在控制器中测试相应的操作。

这里是a reference

【讨论】:

  • 所以我应该模拟所有外部服务将发送的参数,对吧?
  • 您可以传递实际值。例如,您的 API 需要 5 个参数,在测试时您可以为这些参数发布 5 个值。我不明白为什么要在这里进行模拟。
  • 是的,嗯,这就是我说“模拟”时的意思。我必须手动发送参数,查看一次来自外部服务的内容。