🖥
Rspec 3.6 | インスタンスのモック
モックの生成
instance = instance_double('TestClass', some_method: 'return message!')
instance.some_method # "return message!"
クラスに特定の引数を与えた時のインスタンスをモックする
Class
class SomeClass
def some_method
"original message!"
end
end
SomeClass.new.some_method
# => "original message!"
Rspec
元の呼び出しは NoMethodError
になってしまうようだ。
allow(SomeClass)
.to receive(:new)
.with(:specified_arg)
.and_return instance_double('TestSomeClass', some_method: 'mocked message!')
SomeClass.new(:specified_arg).some_method
# "mocked message!"
SomeClass.new.some_method
# "NoMethodError: undefined method `some_method'"
環境
- rspec (3.6.0)
- rspec-mocks (3.6.0)
参考
チャットメンバー募集
何か質問、悩み事、相談などあればLINEオープンチャットもご利用ください。
公開日時
2017-09-22
Discussion