rspecでスタブを使用
rspecでスタブを使用
rspecでスタブを使用
テスト対象が外部サービスや環境依存の値に依存していて、実際の値を使うとテストが不安定になるときに使う。allow(...).to receive(...).and_return(...) でメソッドの戻り値を差し替える(スタブ化する)と、そのメソッドが呼ばれた際に実際の処理を実行せず、指定した値を返すようになる。
staticメソッド
describe "comment" do
context "サービスがHOGEの場合" do
before do
allow(Global.application).to receive(:service).and_return("HOGE") #<= キモ
...
end
it 'hoge' do
...
end
end
end[RSpec] allow、receive、and_return メソッドを使って特定のメソッドをスタブ化する - Qiita
ハッシュ
before do
allow(ENV).to receive(:[]).and_call_original
allow(ENV).to receive(:[]).with("RAILS_ENV").and_return("development")
end