我想让我的一个控制器从我的控制器中发出一个http请求,“get”并解析一个xml,然后我可以在我的视图中显示。听起来很容易......
require 'net/http'
class Profile::EventTypesController < ProfileController
def index
url = URI.parse('instagram.com')
req = Net::HTTP.new(url, 80)
res = req.get('/my_account')
xml = res.body
@feed = Feedjira::Feed.parse xml
...
...
end
end
一旦我尝试它就不会工作,显示以下异常:
WebMock::NetConnectNotAllowedError at /de
Real HTTP connections are disabled. Unregistered request: GET http://instagram.com/my_account with headers {'Accept'=>'*/*', 'Accept-Encoding'=>'gzip;q=1.0,deflate;q=0.6,identity;q=0.3', 'User-Agent'=>'Ruby'}
stub_request(:get, "http://instagram.com/partyguerilla").
with(headers: {'Accept'=>'*/*', 'Accept-Encoding'=>'gzip;q=1.0,deflate;q=0.6,identity;q=0.3', 'User-Agent'=>'Ruby'}).
to_return(status: 200, body: "", headers: {})
有没有办法在我的控制器中启用“REAL HTTP连接”?当我谷歌时,它是关于嘲笑存根并在测试中做到这一点。有人经历过同样的事情吗?
THX
答案 0 :(得分:1)
检查您的Gemfile是否为gem webmock
。它应仅包含在测试组中,而不是开发中。
group :test do
gem 'webmock'
end
同样适用于rspec-rails
gem。见issue