получение объекта, переданного в качестве аргумента для метода с заглушкой с помощью Mocha - PullRequest
12 голосов
/ 24 февраля 2011
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}), потому что я знаю, что объект не равен друг другу.Я просто хочу сравнить подзначение аргумента.

Конечно, это возможно, я просто не могу найти синтаксис или стратегию здесь.

1 Ответ

20 голосов
/ 25 февраля 2011

Я понял это!Оказывается with может взять блок.

Foo.expects(:bar).with do |the_hash|
  the_hash[:abc] == 123
end
...