13
Foo.expects(:bar)
Foo.bar(:abc => 123, :xyz => 987)

# assert Foo.bar was called with a hash that has a key of :abc == 123

基本的に、そのオブジェクトの値を検査するために、スタブ化されたメソッドに引数として渡されたオブジェクトを調べたいと思います。私の状況ではFoo.expects(:bar).with({:abc => 123})、オブジェクトが互いに等しくないことがわかっているため、使用できません。引数のサブ値を比較したいだけです。

確かにこれは可能ですが、ここで構文や戦略が見つかりません。

4

1 に答える 1

24

私はそれを考え出した!withブロックを取ることができます。

Foo.expects(:bar).with do |the_hash|
  the_hash[:abc] == 123
end
于 2011-02-24T21:17:59.597 に答える