はじめに
Rspecで2回同じところにハマったのでまとめます
問題
以下のようなテストを書きました
require 'spec_helper'
RSpec.describe sample do
describe 'サンプルのテスト' do
context '正しい引数が与えられた場合' do
it '成功する' do
params = {"hoge"=>"fuga"}
test.put_api(params)
expect(TestApi).to receive(:put_test).with(params.to_json).and_return(true)
end
end
end
end
しかし実際にAPIを叩く関数をモックしているのになぜか実際にAPIを叩いてエラーになりました
解決方法
このような場合はモックとアサーションを兼任しているので、実際の呼び出し前にexpectを書く必要があります
require 'spec_helper'
RSpec.describe sample do
describe 'サンプルのテスト' do
context '正しい引数が与えられた場合' do
it '成功する' do
params = {"hoge"=>"fuga"}
expect(TestApi).to receive(:put_test).with(params.to_json).and_return(true)
test.put_api(params)
end
end
end
end
おわりに
これは毎回ひっかかるだけにもしかしたらネットにおおくあるかもですね