Rails: проблема постановки задач на макет модели в RSpec - PullRequest
3 голосов
/ 14 июля 2009

Я пытаюсь установить ожидания на моделируемой модели ActiveRecord. Я создал следующий пример, который должен пройти на основе документации, которую я могу найти.

it "should pass given the correct expectations" do
  payment = mock_model(Payment)
  payment.should_receive(:membership_id).with(12)
  payment.membership_id = 12
end

Сбой из-за ошибки «... Макет« Payment_1004 »получил неожиданное сообщение: members_id = with (12)»

Я понимаю, что тестирую фальшивые рамки, я просто пытаюсь понять, как настроить ожидания.

Ответы [ 2 ]

10 голосов
/ 14 июля 2009

Вы устанавливаете ожидание на неправильном имени метода - :membership_id - это "метод получения", :membership_id= - это "метод установки". Правильная строка будет:

payment.should_receive(:membership_id=).with(12)
1 голос
/ 04 октября 2010

Еще один полезный «выход» - если вам не нужен ключ id - это сделать что-то вроде следующего:

mock_model(Payment,:[]= => nil, :save=> nil)

... или, может быть, просто

mock_model(Payment,:[]= => nil)

Lille

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...