Неверно с mock_model в rspec? - PullRequest
       2

Неверно с mock_model в rspec?

1 голос
/ 21 октября 2011

Вот код rspec для тестирования шоу в контроллере клиента:

it "'show' should be successful" do
  #category = Factory(:category)
  #sales = Factory(:user)
  #customer = Factory(:customer, :category1_id => category.id, :sales_id => sales.id)
  category = mock_model('Category')
  sales = mock_model('User')
  customer = mock_model(Category, :sales_id => sales.id, :category1_id => category.id)

  get 'show' , :id => customer.id
  response.should be_success
end

Вот ошибка в rspec:

CustomersController GET customer page 'show' should be successful
     Failure/Error: get 'show' , :id => customer.id
     ActiveRecord::RecordNotFound:
       Couldn't find Customer with id=1003
     # c:in `find'
     # ./app/controllers/customers_controller.rb:59:in `show'
     # ./spec/controllers/customers_controller_spec.rb:50:in `block (3 levels) in <top (required)>'

Тест rspec проходит с реальной записью, созданной Factory (см. #Ed в коде rspec)

Что не так с макетом? Спасибо.

1 Ответ

2 голосов
/ 21 октября 2011

Спецификация терпит неудачу в действии контроллера, который ничего не знает о ваших макетах, если вы не указали это явно.

Добавьте это в вашу спецификацию перед оператором get.

Customer.should_receive(:find).and_return(customer)
...