web-dev-qa-db-ja.com

RSpec should_receiveでいくつかの(すべてではない)引数を期待するにはどうすればよいですか?

class Foo
  def bar(a, b)
  ...

Foo.should_receive( :bar )

引数付きでbarが呼び出されることを期待します。

Foo.should_receive( :bar ).with( :baz, :qux )

:bazと:quxがパラメータとして渡されることを期待しています。

最初のパラメーターが:bazと等しいことを期待し、他のパラメーターを気にしない方法は?

26
B Seven

anythingマッチャーを使用します。

Foo.should_receive(:bar).with(:baz, anything)
40
Dylan Markow

Rspec 1.anythingは、メソッドがhashを引数として受け取っている場合は機能しないため、hash_including(:key => val)で試してください。

Connectors::Scim::Preprocessors::Builder.
    should_receive(:build).
    with(
      hash_including(:connector => connector)
      ).
    and_return(preprocessor)
}
8
G. I. Joe