テストダブル・スパイ・スタブ
毎度意味や違いが分からなくてググるのでまとめる
テスト対象が依存するクラスやオブジェクトの代替品として振る舞ってくれるオブジェクトの総称
指定した振る舞いをするモノ
指定したアクセス方法と振る舞いをするモノ
アクセス方法・回数を記録するモノ
テストダブル
code:ruby
user = instance_double(User, 'ゆーざーだぶる')
この時点では user.name などメソッドは呼び出せない
スタブ
code:ruby
class User
def calc
result = omoi_shori
return result
end
end
このクラスを使ったテストを書く際に、omoi_shori を実行することなくテストをするためにallowを使ってスタブする
code:ruby
user = User.new
user.calc # omoi_shoriが走る
allow(user).to receive(:calc).and_return(true)
user.calc # omoi_shori が走らずtrueが戻る