问题标签 [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 回答
1067 浏览

ruby - Net::HTTP 请求中的参数数量错误

在 Sinatra 应用程序中,我正在尝试制作自己的包装器Net::HTTP,但我被困在我的一个测试中。我正在使用 Webmock 存根请求并将其传递requestNet::HTTP. 我用 RSpec 做测试。我得到的错误是:

net_http.rb(堆栈的第一行)的第279行是:

这是方法内部:

在同一文件的第 75 行调用:

这是我在我的客户上调用的方法。这些是我的文件:

net_http.rb

net_http_spec.rb

我动态添加属性的最后一部分是解决另一个错误。感觉有点像一个肮脏的黑客。也许有更好的方法来做这一切,这也会阻止我这样做?

在我的spec_helper.rb我添加了这一行:

我已将请求的内容放入request方法中,一切似乎都很好,我还使用了 double ofNet::HTTPRequest而不是 webmock 存根,但我得到了同样的错误。我不想存根客户端,因为那是我正在测试的系统。我还查看request了 Ruby 文档中的方法代码。我不明白......那个错误来自哪里以及如何解决它?

0 投票
1 回答
2300 浏览

rspec - Webmock 未注册的请求炸毁了我的测试

在我的spec_helper中,我有这样的 webmock 设置:

现在,当我使用 单独运行此测试时bundle exec rspec spec/stack_client_query_spec.rb,它通过了。

但是,当我使用 运行完整的测试套件bundle exec rspec时,相同的测试会因以下输出而崩溃:

似乎早期的测试正在覆盖请求域或其他东西。我不知道为什么!我究竟做错了什么?我该如何解决?

0 投票
2 回答
2113 浏览

ruby-on-rails - Webmock 和哈希问题

错误信息是这样的

WebMock::Response::InvalidBody: 必须是以下之一:[Proc, IO, Pathname, String, Array]。'哈希'给出

我正在使用下面的代码来测试谷歌库以在我的控制器中获取用户信息

这是控制器代码

auth_with_oauth2_service 包含这个

回复内容形式

服务是谷歌的授权,然后请求我可以使用 response.email 和 response.name 访问的用户数据。

但是,由于 google gem 获取信息并从中创建哈希,因此我无法对字符串执行任何 JSON.parse 等操作。

这样做的方法是什么?

测试套件:Rspec、capybara、webmock、VCR

0 投票
1 回答
308 浏览

ruby-on-rails - 仅在使用 WebMock 的 Circle CI 上测试亚马逊 S3 上传失败

我有关于将图像上传到 S3 的测试,无论在哪里测试,我都会存根发出的请求。

所有测试都在本地通过,但在圈 CI 上,我得到以下异常:

0 投票
1 回答
187 浏览

ruby-on-rails - Mocking certificate using WebMock Rails

I have a webscraper in ruby that analyses certificates by using this:

Is it possible to mock this request using webmock and give a fake certificate during testing?

0 投票
1 回答
1534 浏览

ruby - 如何允许具有此路径的请求通过 webmock?

我想模拟 NetHTTP 请求,但应该允许一些请求。

当我声明这样的允许请求时:

并致电:

我明白了:

HTTP 连接被禁用。未注册的请求:GET https://graph.facebook.com/v2.8/debug_token?access_token=qwerty with headers ...
您可以使用以下代码段存根此请求:
stub_request(:get, "https://graph.facebook.com/v2.8/debug_token?access_token=qwerty").
...

像这样的正则表达式也会失败:

但不会因此失败:


如何允许我最初想要的完整正则表达式?为什么即使是\/after 主机名也无法匹配?

0 投票
0 回答
641 浏览

ruby-on-rails - Cucumber on Rails - 仅使用本地 HTML 文件存根一个请求

我不明白如何设置 webmock(或任何存根库)以仅存根对特定 URL(www.example.com)的特定请求。

我正在浏览器上进行 Cucumber 测试,并且我想允许连接到任何站点,除了我想要存根的那些请求。

对于我的特殊情况,我想存根访问www.example.com/article/:article_id并交付我之前下载的页面的 HTML 文件。

按照此链接和其他问题

我的黄瓜环境文件

我目前被困在这个阶段,因为存根不工作,我的测试试图连接到真实的网站。我想WebMock.allow_net_connect!禁用任何存根。我不能只是disable_net_connect!因为我想授权每个网站(而不仅仅是本地主机)并且只授权“黑名单”www.example.com并将其存根。我怎样才能做到这一点 ?

仅供参考:提供 HTML 文件的我的 Sinatra 应用程序

0 投票
0 回答
577 浏览

ruby-on-rails - 如何使用 RSpec 允许对其他 docker 容器的 HTTP 请求?

我有一个带有几个不同移动部件的 docker 项目,我希望一个容器能够调用另一个容器的 API。

但是,在我的 rspec 测试中发送任何类型的请求都会产生:

WebMock::NetConnectNotAllowedError:真正的 HTTP 连接被禁用。未注册的请求:...

我怎样才能让它调用另一个容器?

0 投票
1 回答
532 浏览

ruby-on-rails - 如何在 Rails 中的 Mechanize 上存根 HTTP 请求?

我有一些这样的代码库,我想使用 rspec 测试 favicon_href,但是如你所愿,favicon_href 将调用页面函数,我知道我可以模拟页面函数,但在这个阶段我想模拟来自给定 url 的 HTTP 请求,所以我使用WebMock gem的语法来存根HTTP请求,但似乎WebMock与Mechanize不兼容,尽管我已经完成了存根,但它总是在下面显示错误,任何人都知道如何解决它或任何gem都可以存根HTTP要求机械化?

代码

错误

0 投票
0 回答
582 浏览

ruby - 如何解决 Curl 的“无法连接到服务器”

我将 Rspec 与 Capybara 和 WebMock 一起用于我的测试(我也在使用 Charles 代理),出现以下错误,从未在特定测试中。

我偶尔会发生这种情况,主要使用 rspec-retry 来处理它,但现在我注意到每次遇到此错误都需要花费大量时间。

有任何想法吗?

原始 Gemfile.lock:

新 Gemfile 的差异,仍然“无法连接到服务器”错误: