问题标签 [webmock]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
73 浏览

rspec - webmock 是否自动检测 `?` 在 url

我正在使用 webmock 来存根请求。我使用以下代码存根了一个请求。

我收到以下错误:-

在我使用之前它正在工作,http://...com/1741/likes我只是在存根请求中进行了更改以添加命名空间v2.0并且测试用例被破坏了。

0 投票
1 回答
781 浏览

ruby-on-rails - Webmock: how to fake a gzipped response?

I don't have much experience with stubbing and am having issues with requests to Braintree using webmock and braintree-rails.

spec/spec_helper.rb

spec/support/connection_helper.rb

Rspec error:

I'm trying to test the page, not the payments themselves, however when rendering the page a token needs to be retrieved first and so I'm getting this error.

How would I go about faking a gzipped response, or alternatively skip anything to do with Braintree requests in my tests?

app/controllers/posts_controller.rb

app/classes/payment.rb

0 投票
1 回答
1691 浏览

ruby-on-rails - WebMock.disable_net_connect!不工作

我正在尝试编写一个WebMock基于测试用例来模拟调用 http API。为此,我将其包含webmock/rspec在我的spec_helper.rb文件中,并添加WebMock.disable_net_connect!(allow_localhost: true)了禁止通过网络的 http 请求。但是当我运行一个虚拟测试来检查 http 请求被阻塞的天气时,我可以看到仍然发出了 http 请求。

spec_helper.rb 文件:

还有我写的虚拟测试文件:

请帮助我找出我是否缺少某些配置或者我正在这样做的其他东西。

0 投票
0 回答
257 浏览

ruby-on-rails - WebMock:未定义的方法“gsub!” 使用 `stub_request` 后的 nil:NilClass

我的应用程序使用 Carrierwave + Fog 在 Amazon S3 上存储图像。我对使用 Capybara 的attach_file助手添加文件的注册过程进行了 Rspec 功能测试。规范如下所示:

存根似乎工作正常,但由于控制器中的错误导致测试失败:

这是控制器的外观:

第 36 行if @business.save是调用的行。使用binding.pry,我注意到logo属性 on@businessnil在第 35 行实例化之后,我猜这与对 AWS 的存根请求没有返回任何 CarrierWave 需要分配属性。不过,我不确定如何解决这个问题以使测试通过。提前感谢您的帮助!

0 投票
1 回答
951 浏览

ruby - 在 Cucumber on Ruby w/rspec 中,我如何在 Then 子句中期望/断言 webmocked 调用?

我正在编写一个充当远程 API 客户端的 gem,因此我使用 webmock 来模拟远程 API,并使用带有 rspec-mock 的 Cucumber 进行测试。

作为我的 Cucumber 测试的一部分,我打算在一个子句中存根我的 API,Given但是我想指定在一个Then子句中调用远程 API。

一个非常基本的例子是:

特征文件

步骤定义

问题: 如何验证我的谷歌存根已被调用?

旁注:我知道我可以使用expect(a_request(...))orexpect(WebMock).to ...语法,但我的感觉是我将重复我的Given子句中定义的内容。

0 投票
2 回答
411 浏览

ruby - 在 aws-sdk 中使用 webmock 的正则表达式不起作用

我正在尝试使用带有 rspec 的 webmock 来存根对 Aws 的请求,但我似乎无法让正则表达式用于 SQS 轮询。如果我运行rspec,webmock 会在我的 spec_helper.rb 中生成一个“正确的”存根供我在before(:each)块中使用,如下所示:

所以在我的spec_helper.rb我有

我尝试使用正则表达式的区域是 theSignature和 the,X-Amz-Date因为它们是唯一两个似乎在运行 rspec 的不同尝试之间发生变化的区域。问题是正则表达式似乎不起作用,因为即使我已将其添加到 中spec_helper.rb,每次运行套件时,我都会从 webmock 中取回推荐的存根,而不是通过或失败的测试。根据我从 webmock 文档和几个教程中的理解,它应该在这一点上通过。我应该如何更改此设置以使 webmock 为我的测试套件针对 Aws SQS 轮询工作?几天来,我一直在用头撞我的桌子,所以非常感谢任何帮助。

0 投票
2 回答
2152 浏览

ruby - 如何使用 webmock 伪造对 Capybara/poltergeist 的响应?

我正在测试一个网络爬虫,我想使用 Webmock 来提供虚假网站以加快测试速度。当我模拟一个网站时,Ruby 的原生 HTTP 库工作正常,但 Capybara 似乎无法接收模拟的响应。我知道 webmock 正在存根低级别的 HTTP 请求,我认为使用哪一个 capybara 以及配置使用哪一个 webmock 很重要。但是,我需要知道 Capybara 如何发出 HTTP 请求以及如何配置 webmock 以存根该特定方法集。

我得到的错误如下: command': Request failed to reach server, check DNS and/or server status (Capybara::Poltergeist::StatusFailError)

我也尝试过使用 FakeWeb,但这根本无法注册 URI。如果您认为这是错误的工作工具,我愿意使用除 webmock 之外的其他 API。

提前致谢 :)

0 投票
1 回答
239 浏览

ruby - 是否可以将 WebMock 与 Rack Test 一起使用?

使用 WebMock 存根 Oauth 2 提供程序。问题是我想使用机架测试。

机架测试仅针对应用程序的一个实例运行,并且不了解 Oauth 2 提供程序等外部 HTTP 主机。

WebMock.stub_request(:get, "https://test.oauth-provider.com/oauth/authorize")将不起作用,因为请求以/oauth/authorize.

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

0 投票
1 回答
375 浏览

regex - 使用端口范围制作 webmock

我正在使用 rspec 和 capybara ,js: truedescribe我有一个问题:

如果我像他们说的那样存根,下一个端口是不同的:

我尝试将正则表达式添加到端口,但一直失败。

0 投票
1 回答
5406 浏览

ruby - 在 webmock 中多次调用同一端点并产生不同的结果?

我有一些看起来像这样的代码:

这个想法是您可以将应用程序设置为等到服务器处于某种状态(例如,重新启动它,然后观察它直到它再次处于活动状态)

但是,我在测试中使用 webmock,我无法找到第二次给出不同响应的方法。

例如,像这样的代码:

想法是“第一次标记为非活动状态,因此循环通过一次,然后标记为活动状态”

文档说存根只是作为“最后一个找到的将起作用”完成的:

始终将应用与请求匹配的最后声明的存根,即:

stub_request(:get, "www.example.com").to_return(:body => "abc")

stub_request(:get, "www.example.com").to_return(:body => "def")

Net::HTTP.get('www.example.com', '/') # ====> "def"

是否可以在 webmock 中对具有不同结果的同一端点的多个调用进行建模?