どっちかっていうとただのRspecの書き方だが(
環境
- Rails 5
やりたいこと
Rubyでは、RestClientというHTTPのライブラリがある。割と有名
これを使った箇所をテストしたいが、毎回HTTPリクエストするわけにもいかないのでスタブ化したい
コード
dummy_response = instance_double(RestClient::Response, body: {status: "ok"}.to_json, code: 200) allow(RestClient::Request).to receive(:execute).and_return(dummy_response) get targets_path
500とかエラーを起こしたいときは
dummy_response = instance_double(RestClient::Response, body: {status: "ng"}.to_json, code: 500)
タイムアウトとか例外を発生させたいときは
allow(RestClient::Request).to receive(:execute).and_raise(RestClient::RequestTimeout)