動かざることバグの如し

近づきたいよ 君の理想に

RspecでRestClientをスタブする

どっちかっていうとただのRspecの書き方だが(

環境

やりたいこと

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)