具有任何主体和标头的 Webmock 存根请求

2024-02-02

如何使用 Webmock 来存根带有任何正文和标头的请求?我尝试使用正则表达式

WebMock.stub_request(:post, 'api.quickblox.com/').with(:body => /.*?/, :headers => /.*?/).to_return(:status => 201, :body => "", :headers => {})

在 rspec 但它不起作用,它有

NoMethodError:
   undefined method `map' for /.*?/:Regexp

你应该能够使用

WebMock.stub_request(:post, 'api.quickblox.com/')
  .to_return(status: 201, body: 'whatever', headers: { some_kind_of: 'header' })

如果您没有在存根本身上指定主体或标头,它将允许主体或标头的任何内容。这不适用于查询参数。

例如,此示例项目的测试通过:

bundle exec rspec output:

Test
  does a thing

Finished in 0.00379 seconds (files took 0.25797 seconds to load)
1 example, 0 failures

库/测试.rb

require 'faraday'
require 'json'

class Test
  def self.do_a_thing
    JSON.parse(Faraday.get('http://www.example.com') do |request|
      request.headers['Something'] = 'anything'
      request.body = 'bla bla bla'
    end.body)
  end
end

规范/test_spec.rb

require_relative '../lib/test.rb'
require 'webmock/rspec'

describe Test do
  WebMock.stub_request(:get, 'http://www.example.com')
    .to_return(body: '{ "this": "is a test" }')

  it 'does a thing' do
    expect(described_class.do_a_thing).to include({ 'this' => 'is a test' })
  end
end

.ruby 版本

ruby-2.0.0

Gemfile

gem 'rspec'
gem 'webmock'
gem 'faraday'

Gemfile.lock

GEM
  specs:
    addressable (2.3.8)
    crack (0.4.2)
      safe_yaml (~> 1.0.0)
    diff-lcs (1.2.5)
    faraday (0.9.1)
      multipart-post (>= 1.2, < 3)
    multipart-post (2.0.0)
    rspec (3.2.0)
      rspec-core (~> 3.2.0)
      rspec-expectations (~> 3.2.0)
      rspec-mocks (~> 3.2.0)
    rspec-core (3.2.3)
      rspec-support (~> 3.2.0)
    rspec-expectations (3.2.1)
      diff-lcs (>= 1.2.0, < 2.0)
      rspec-support (~> 3.2.0)
    rspec-mocks (3.2.1)
      diff-lcs (>= 1.2.0, < 2.0)
      rspec-support (~> 3.2.0)
    rspec-support (3.2.2)
    safe_yaml (1.0.4)
    webmock (1.20.4)
      addressable (>= 2.3.6)
      crack (>= 0.3.2)

PLATFORMS
  ruby

DEPENDENCIES
  faraday
  rspec
  webmock

BUNDLED WITH
   1.10.5
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

具有任何主体和标头的 Webmock 存根请求 的相关文章

  • 如何在rails中使用like子句查询?

    我想在搜索关键字时获得 json 格式的数据 所以我使用 LIKE 子句并像这样查询 select from employees where fname like or mname like or lname like or usernam
  • 如何使用康康康舞?

    我想向我的 Rails 应用程序中的用户授予权限 我有 管理员 可以创建 更新和删除所有帖子和评论 用户 只能创建和更新自己的评论 访客 则不能执行这些操作 为此 我使用宝石 devise 和 cancancan 我理解 devise 宝石
  • 过滤器链因 [:login_required] returned_or_redirected 而停止

    希望我能很好地解释这一点 但如果需要更多信息 请告诉我 我正在构建一个表单 用户可以在其中创建 事件 此次事件有如下关系 属于 客户 客户有很多事件 belongs to 用户 用户有很多事件 has one incident status
  • 为什么我的 RSpec 规格运行两次?

    我在我的文件中定义了以下 RSpec 1 3 0 任务Rakefile require spec rake spectask Spec Rake SpecTask new spec do spec spec libs lt lt lib l
  • 使 diff-lcs 的输出可读

    我正在使用 diff lcs gem 输出两个 html 内容体之间的差异 这是示例内容 版本一 p Paragraph one Sentence one p p Paragraph two Another sentence p p Par
  • 设计闪现消息不显示

    Devise 在我的应用程序中完美运行 除了来自 devise en yml 的闪存消息未显示在视图中 我究竟做错了什么 下面是我的注册页面视图 我都尝试过 alert and notice但不工作 先感谢您 h2 Sign up h2 p
  • 在虾中使用列表

    我使用 prawn 创建 pdf 文件 其中包含大量表格格式的数据和一些列表 列表的问题在于 我只是使用文本作为列表 因为没有与 ul gt li 列表等效的语义 就像我在 webfrointend 中使用它们一样 所以这些清单是不合理的
  • counter_cache 可以与 has_many 一起使用吗?

    我正在努力将 counter cache 添加到我的模型中 用户 id org id 组织 id users count 但出现以下错误 ArgumentError Unknown key s counter cache class Org
  • 如何将 image_tag 与 bootstrap class: "img-responsive" 一起使用?第11章

    我问这个问题的原因是为了解决一个非常烦人的语法错误 我正在使用第 11 章 这样我就可以在我的新网站上使用图像构建一个博客部分 除了我尝试向此行添加 class img responsive 之外 一切都正常 我只是无法弄清楚添加类的正确语
  • 使用rails-Ajax 调用控制器方法?

    我正在尝试从视图中的按钮执行 application controller rb 中的 Ruby 方法 在昨天的一篇文章中 有人告诉我使用 Ajax 调用来执行此操作 因为如果没有它 只会在页面加载时运行 我对此很陌生 很难理解它 我安装了
  • Rails cron 每当捆绑:命令未找到

    我尝试使用 每当 每天执行一次耙子任务 我收到这个错误 bin bash bundle command not found home app rvm rubies ruby 1 9 2 p180 lib ruby site ruby 1 9
  • 为什么 npm install 失败并出现与 node-sass 相关的错误?

    我正在使用我继承的 Rails 应用程序 我正在尝试运行npm install命令但我不断收到errors以下 我尝试跑步npm rebuild node sass正如输出中所建议的 但它没有帮助 我遇到这个问题乌班图16也OS X gt
  • 安装heroku toolbelt后出现Ruby错误

    我正在 win 7 32 位系统上使用 Heroku 但我没有管理员权限 我已经下载并安装了heroku工具带如下http community webfaction com questions 11803 heroku toolbelt h
  • 尝试安装 Rails 时,执行 gem ... (Gem::RemoteFetcher::FetchError) 503 错误

    这是当我尝试使用 Ruby 2 1 1 和 RVM 执行 gem install Rails v 4 1 0 时出现的错误 错误 执行 gem 时 Gem RemoteFetcher FetchError 错误 响应服务不可用 503 ht
  • 是否仍然可以在 Rails 4 中使用测试单元?

    从 Rails 3 2 升级到 Rails 4 后 我的应用程序可以运行 但我用测试单元编写的测试是一场灾难 据传 Minitest 与测试单元 兼容 然而 如果我尝试使用 现在捆绑的 Minitest 就会发现有很多差异 从断言 语句名称
  • 如何在 Rails 中对不同用户建模

    Question 我有一个带有内置授权和身份验证逻辑的用户模型 现在我意识到我拥有三种不同类型的用户 我想存储每个人的不同信息 Rails 中处理这个问题的最佳方法是什么 基于当前阅读的想法 我看过 STI 但从我读到的内容来看 它是不合适
  • 使用 Rails3-autocomplete gem 时出现“自动完成方法不存在”错误

    在我的rails应用程序中 我尝试使用rails3 jquery autocomplete gem 我在 Gemfile 中包含了以下行 gem Rails3 jquery autocomplete 并提供捆绑安装及其在 gems 中列出
  • 哈米尔评论结束

    我是哈米尔新手 这让我很困惑 我不喜欢删除可以注释掉的代码 但我不知道如何在 haml 中正确结束注释 这是一个代码片段 field f label member id br f text field member id field f l
  • 如何使用 Rspec 来测试使用 Paperclip 的模型是否正在验证上传文件的大小?

    该模型 class Attachment lt ActiveRecord Base belongs to narrative attr accessible description user id narrative id has atta
  • aws-s3 gem 和 right_aws gem 之间的 Rails Paperclip 冲突。怎么解决?

    对于新应用程序 我想使用回形针将文件存储到 S3 我已经为另一个应用程序安装了 aws s3 gem 这似乎会导致一些问题 因为 Paperclip 应该使用 right aws 但正在尝试使用 aws s3 gem 但我不想从我的系统中删

随机推荐