🖥

#Rspec での double と spy の違い ( Rspec double and spy : behaviour differen

2023/09/01に公開

double

unable to use undefined method
定義していないメソッドは使えない

user = double(name: :alice).name
# => :alice

user = double(name: :alice).address
# => [#<RSpec::Mocks::MockExpectationError: #<Double (anonymous)> received unexpected message :address with (no args)>]

spy

定義していないメソッドも使える、メソッドチェーンができる
able to undefined method and it returns double

user = spy(name: :alice).name
# => :alice

user = spy(name: :alice).adress
# => #<Double (anonymous)>

spy.a.b.c
# => #<Double (anonymous)>

spy.to_s.b.c
# NoMethodError: undefined method `c' for "#[Double (anonymous)]":String

Original by Github issue

https://github.com/YumaInaura/YumaInaura/issues/3078

チャットメンバー募集

何か質問、悩み事、相談などあればLINEオープンチャットもご利用ください。

https://line.me/ti/g2/eEPltQ6Tzh3pYAZV8JXKZqc7PJ6L0rpm573dcQ

Twitter

https://twitter.com/YumaInaura

公開日時

2020-04-18

Discussion