问题标签 [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.
logging - 如何禁用 webmocks 日志记录?
我正在使用 webmock 进行我的 rspec 测试之一,每当我运行测试套件时,我都会在运行过程中看到类似于 webmock 的日志记录语句:
...我,[2016-03-17T09:31:50.735555 #16878] 信息——:发布https://test.example.com/services/oauth2/token
D,[2016-03-17T09:31:50.735618 #16878] 调试 -- 请求:用户代理:“法拉第 v0.9.2” 内容类型:“应用程序/x-www-form-urlencoded”
我,[2016-03-17T09:31:50.748981 #16878] 信息——状态:200
D,[2016-03-17T09:31:50.749035 #16878] 调试——响应:...
我找不到任何配置,也找不到将记录器更改为空记录器的方法。如何关闭这些消息?
ruby-on-rails - 带有持久 HTTPClient 的 Rails gem 中的存根请求
我正在尝试编写一个 RSpec 测试,使用 Boxr gem ( https://github.com/cburnette/boxr ) 对 api.box.com 的请求进行存根。我创建了一个存根,它使用 #to_rack 方法转到一个假 Box 类
和我的 FakeBox 课程:
每当我调用Net::HTTP.get('https://api.box.com/oauth2/token')
或HTTPClient.new.post(...)
直接在控制器或测试方法中都会触发这个假动作。
Boxr::get_tokens(params[:code])
但是,当我调用我在 Boxr gem 本身中放置一个调试器时,它不会被触发:
BOX_CLIENT 在这里定义:
当调试器被触发时,我得到的响应显示BOX_CLIENT.post(uri, body: body)
访问了该站点并在我期望它触发模拟时返回了一个错误。在该断点处的调试控制台中,我进入HTTPClient.new.post(uri, body: body)
并得到了我期望的存根响应。
当我进入HTTPClient.new.class
调试器控制台时,我得到:WebMockHTTPClient。BOX_CLIENT.class
-> HTTP客户端。这似乎是我问题的根源。
我无法修改宝石。有谁知道如何解决这个问题?
ruby-on-rails - WebMock.disable_net_connect!不使用 rspec(无 VCR)
我试图放在WebMock.disable_net_connect!
很多地方,但按照我上次测试中的建议,我把它放在spec_helper.rb
这样的地方:
我的规格如下:
嗯,当然是我的客户打来的电话:
它失败并显示此消息:
我正在使用 rails 4.1.8、rspec 3.1.7、rspec-rails 3.1.0 和 webmock 1.8.11。现在,我正在创建一个 http_client 的模拟来让事情正常工作,但是,这里的任何帮助都将不胜感激!如果您需要更多信息,请告诉我!
ruby-on-rails - WebMock stub_request 不工作
在我的 rails 项目中,其中一个初始化程序请求并从S3
.
这打破了使用webmock
gem的 rspec 测试套件
尝试运行测试套件时出现以下错误
添加此存根不会修复错误。事实上,添加以下任何内容似乎都不会做出任何改变:
我在这里想念什么?错误消息中的详细标头在这里似乎没有意义,以允许各种请求S3
编辑:
我只是注意到添加WebMock.disable!
到spec_helper
也不会导致任何变化。我没有将存根添加到正确的位置吗?如果不在,应该在哪里添加spec_helper
?
ruby - 带有承载授权标头的 stub_request 在 webmock 2 中不起作用
以下代码适用于 webmock 1.20.4 但不适用于 2.0.1
这是我正在存根的代码。
从 stub_request使用assert_requested :get, "http://www.myapi.com/my-endpoint", :headers => {'Authorization' => "Bearer fake_oauth_token"}, :times => 1
和删除标头我从断言中获得以下输出。
有没有办法让 stub_request 代码与 webmock 2 一起工作?
ruby - 使用 RSpec/webmock 对各种状态码的请求存根
我需要使用 webmock/webmock 对外部 API 的请求存根,但我需要测试少数响应(200、404、503 等)。干净地做到这一点的最佳方法是什么?我的第一个 hacky 想法是你可以在标题中设置一些独特的东西,比如一个唯一的 User-Agent 字符串,以键入,但它导致我编写像这样的糟糕代码:
我看过 VCR,但据我了解,很难用它来模拟和捕获错误。是否有另一种简洁明了的方法来消除对多个响应代码的请求?谢谢!
ruby-on-rails - 如何在域或之后的方法上存根请求?
我目前正在为发送 SMS 并在我们的数据库中创建它的日志的服务类编写规范。我正在尝试存根此请求,但@text.sms_uid
它是一个SecureRandom.urlsafe_base64
随机代码。我也在打架config.before(:each)
。
因此,我无法指定sms_uid
in,因为在调用存根后会生成stub_request
随机数。sms_uid
这会导致测试每次都失败。有没有一种方法可以在生成代码后(换句话说,在它通过特定方法之后)存根请求,或者有没有办法存根通过域的所有请求“ https://api.silverstreet.com “?
ruby-on-rails - 如何为 webmock 存根正确复制 Octokit 请求响应的响应主体
Octokit 响应的类型为Sawyer::Response
它们看起来像这样:
我试图像这样存根我的请求
然后在我的代码中调用 response.content,因此我希望能够从响应中获取内容。
我目前收到错误:'WebMock::Response::InvalidBody: 必须是以下之一:[Proc、IO、路径名、字符串、数组]。'哈希'给出'。response_body 的正确格式是什么?如果我把它变成一个 json,我就不能在我的代码中对对象做 response.content。
ruby-on-rails - RSpec 和 WebMock:忽略请求
当我运行测试时,我收到一个错误:
这就是我为解决这个问题所做的:
spec_helper.rb:
但是我仍然继续收到此错误,也许有人有解决方法的想法?
UPD:我想使用webmock
gem 为 api 请求编写规范。但我不需要请求travis-ci
并希望将这些请求添加到“忽略”。
ruby-on-rails - Rails webmock 存根 localhost api 调用
我有一个控制器,它有一个post_review
调用 Rest Client API 调用的操作。
这document_manual_result
是一个记录方法,delete_relavent_review_queue
是一个回调类型的方法,它将删除该项目。
我已经编写了几个测试来测试 post_review 操作的副作用,即它记录了我已经发送了结果(又名:)response_body
并且我删除了另一个对象。
在我打开测试之前RestClient
,测试工作正常,但现在休息客户端正在执行它打破了规范。我想只存根rest_client.execute
控制器操作的一部分,以便测试该方法的其他副作用。我有它指向的 URL,localhost:3001
所以我尝试了:
我在我的 before 块中使用了它,它没有做任何事情,我在实际测试中尝试了它,就在我post :post_review, @params
和 Webmock 似乎什么都不做之前。我认为 webmock 所做的是,它正在侦听对特定 URL 发出的任何请求,并默认返回成功或您指定的选项块。我不确定我是否正确使用它。