2013-11-27 32 views
0

我想在我的控制器中使用rspec發出一個操作的post請求,它應該返回一個JSON響應。這是我使用Facebook Graph Gem的當前測試代碼。我不確定我的代碼:Rspec使用post請求來獲得響應

it "creates JSON format metadata with facebook post social message info about social account" do 
    stub_request(:post, "https://graph.facebook.com/test_fixed_origin_id_str/likes").with(:body => {"access_token"=>"this_is_a_test_token"}, :headers => {'Content-Type'=>'application/x-www-form-urlencoded'}).to_return(:status => 200, :body => "", :headers => {}) 
    post :like, id: combined_id, format: :json 
end 

什麼是做一個POST請求API的最佳方式?我很抱歉,如果我的問題不太清楚,但我在測試中提出請求的經驗很少。

感謝

回答

0

有一件事我可以建議是隻使用VCR寶石(https://github.com/vcr/vcr)。實質上,這背後的主要思想是,當您的測試第一次運行時,vcr將「記錄」來自API端點的JSON響應。

在下一次測試迭代中,它將簡單地「回放」此響應,而不是每次都對服務器進行實時調用。這有它的好處(速度,簡單性),但你也必須記住,如果API響應確實隨時間而改變(即,如果FB改變了他們的響應),你必須確保重新記錄即將到來的內容背部。

+0

非常感謝。我想知道是否可以推薦一個資源來完成這項工作,而沒有寶石並進行實時通話?再次感謝 –

相關問題