ruby-on-rails – RSpec麻烦模拟HTTP请求
发布时间:2020-12-17 02:31:00 所属栏目:百科 来源:网络整理
导读:我如何为…编写RSpec Net::HTTP::Proxy(PROXY_HOST,PROXY_PORT).start(url.host) do |http| request = Net::HTTP::Post.new(url.path) request.form_data = {'param1' = 'blah1','param2' = 'blah2'} response = http.request(request)end 这是我得到的……
我如何为…编写RSpec
Net::HTTP::Proxy(PROXY_HOST,PROXY_PORT).start(url.host) do |http| request = Net::HTTP::Post.new(url.path) request.form_data = {'param1' => 'blah1','param2' => 'blah2'} response = http.request(request) end 这是我得到的…… @mock_http = mock('http') @mock_http.should_receive(:start).with(@url.host) Net::HTTP.should_receive(:Proxy).with(PROXY_HOST,PROXY_PORT).and_return(@mock_http) Net::HTTP::Post.should_receive(:new).with(@url.path).and_return(@mock_http) 然而,当尝试… Net::HTTP::Post.should_receive(:new).with(@url.path).and_return(@mock_http) ……收到以下回复…… <Net::HTTP::Post (class)> expected :new with ("/some/path") once,but received it 0 times 一个完整的解决方案将不胜感激! 解决方法
我不确定你要测试的是什么,但是这里是如何使用webmock存根这个http请求:
在Gemfile中: group :test do gem 'webmock' end 在spec / spec_helper.rb中: require 'webmock/rspec' WebMock.disable_net_connect!(:allow_localhost => true) 在你的测试中: stub_request(:post,url.host). with(:body => {'param1' => 'blah1','param2' => 'blah2'},to_return(:status => 200,:body => '{ insert your response body expectation here }' (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |