Zuruzuru Blog 🍜< ズルズル
March 10, 2022
Rspecでインスタンスのメソッドをモックしたい
#Rspec
#Ruby
Rubyのことブログに描くのはじめてだ。
Example.new.foo
このfooをmockしようとしたら、インスタンスのmockになるから毎回変わってmockできなくね?と思った。 単純にインスタンス自体をmockしてから、そこに対して新しくmockすれば良いことに気づいた。
mock = instance_double("Example")
allow(Example).to receive(:new).and_return(mock)
allow(mock).to receive(:foo).and_return(result)
書きがてら調べてると用語間違えてるかも、モックじゃなくてスタブというのかもしれない。
あとallow
じゃなくてallow_any_instance_of
っていうのもあるみたい。使えるなら特定のインスタンスに関心があるとき以外はこっちで良さそう。
これくらい気軽にブログ書いてこう。