Проверьте частичные аргументы с RSpec - PullRequest
3 голосов
/ 06 декабря 2011

Мне нужно установить ожидание на один аргумент. Как я могу получить доступ к полученным аргументам из RSpec?

Вот чего я хочу достичь.

let(:api) { double('API') }

it "should pass :filter in options" do
  api.should_receive(:traverse)
  subject.execute
  args = api.recevied_arguments_for(:traverse) # How to obtain all the arguments?
  args[0].should have_key(:filter)
end

Чтобы ответить на вопрос, исправьте строку с комментарием.

Спасибо.

1 Ответ

10 голосов
/ 06 декабря 2011

Просто разобрался. Намного лучше, чем я думал.

let(:api) { double('API') }
it "should pass :filter in options" do
  api.should_receive(:traverse).with hash_including(:filter)
  # or with the exact value
  #api.should_receive(:traverse).with hash_including(:filter => 'something')
  subject.execute
end
...