2017-09-14 6 views
0

私のコントローラのうちの1つが、コントローラ内からhttpリクエストを作成してxmlを解析し、私のビューに表示できるようにします。簡単な作業のように聞こえる...railsコントローラの中のhttpリクエスト

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

答えて

1

gem webmockのためにあなたのGemfileを確認してください。それは、開発ではなく、テストグループ内にのみ含める必要があります。

group :test do 
    gem 'webmock' 
end 

rspec-railsgemについても同様である。これを参照してくださいissue

+0

設定を変更できない場合はどうしますか? "WebMock.allow_net_connect!"前と "WebMock.disable_net_connect!"要求を有効にしたいコード部分!これが誰かを助けることを願って.. – muenchnair

関連する問題