RSpec receive_message_chainで引数の検証をする
method chainと引数の検証について
日々の作業で出てきた技術メモの切れ端を置いておくページ
method chainと引数の検証について
expect(hoge).to recieve_message_chain(:a, :b)
というように書くと hoge.a.b
というメソッドが呼ばれることを確認できる。
これに加えてwithというのを使うと指定された引数が与えられたかどうかもチェックできるが、単純に
expect(hoge).to receive_message_chain(:a, :b).with('argument')
とすると hoge.a.b('argument')
のチェックになってしまう。メソッドaに引数を渡している引数を確認したいときは
expect(hoge).to receive_message_chain(:a, :b).with('argument').with(no_args)
とする。むずい。