【问题标题】:Is it possible to use WebMock with Rack Test?是否可以将 WebMock 与 Rack Test 一起使用?
【发布时间】:2015-08-20 18:29:51
【问题描述】:

使用 WebMock 存根 Oauth 2 提供程序。问题是我想使用 Rack Test。

Rack Test 仅针对应用实例运行,不了解 Oauth 2 Provider 等外部 HTTP 主机。

WebMock.stub_request(:get, "https://test.oauth-provider.com/oauth/authorize") 将不起作用,因为请求以/oauth/authorize 发送到应用程序。

WebMock 有没有办法响应本地请求?例如:

WebMock.stub_request(:get, "/oauth/authorize")

【问题讨论】:

    标签: ruby rspec oauth-2.0 capybara webmock


    【解决方案1】:

    在我看来,您对您正在测试的内容有点困惑,必须划清界限,您的系统在哪里(所谓的 SuT,被测系统)以及外部各方在哪里。

    这非常重要,因为:

    • SuT 是您在测试期间要与之交互的对象(即您的 Rack 应用程序);
    • 将模拟外部方(即外部 Web 服务,以及......这可能令人惊讶,其他库,如 OAuth、SQL 驱动程序等)

    这意味着,如果您尝试将 WebMock 用于 您的 应用程序的任何部分(由于关于模拟相对 URL 的问题,这看起来像您正在做的事情),您'显然做错了什么。

    更接近你的任务,如果我是你,我会:

    1. 选择一个良好的、经过良好测试的 OAuth 库并将其放入应用程序中。
    2. 在测试方面,只需使用我自己的简单存根对象,而不是真正的 OAuth 实现类。这将把重点转移到测试我的服务实现的行为上。验证 OAuth 库实际上是一项双重工作,因为它的作者已经涵盖了它。

    希望这会有所帮助!

    【讨论】:

      猜你喜欢
      • 2012-11-14
      • 1970-01-01
      • 2021-11-12
      • 2016-04-01
      • 2011-01-20
      • 2018-08-11
      • 2021-08-05
      • 2019-03-18
      • 2014-03-15
      相关资源
      最近更新 更多