1

Недавно я обновился до Rails 4. Когда я запустил тесты RSpec, у меня появилась ошибка.Неопределенный метод `i18n_scope 'для RSpec :: Mocks :: Mock: Class

Вот моя спецификация:

1 model = double(:model, errors: double(:errors, full_messages: [])) 
2 transaction = double(:transaction) 
3 transaction.stub(:update_attributes!) { raise ActiveRecord::RecordInvalid.new(model) } 

я получил ошибку <NoMethodError: undefined method 'i18n_scope' for RSpec::Mocks::Mock:Class> в строке 3.

Per the API documentation 'i18n_scope' has been removed from Rails 4.

+1

Я ответил на ваш вопрос + предложил «более чистую» альтернативу здесь: http://stackoverflow.com/questions/33037136/stub-i18n-scope-for-mocking-activerecordrecordinvalid-on-rails-4-rspec-3- 3-0/34361086 # 34361086 – daino3

ответ

-1
RSpec::Mocks::Mock.stub(:i18n_scope).and_return(:activerecord) 
model = double(:model, errors: double(:errors, full_messages: [])) 
ActiveRecord::RecordInvalid.new(model) 

Не уверен, почему RSpec :: Mocks :: Mock: Класс был ищет метод «i18n_scope». Но, чтобы исправить это, я пропустил «i18n_scope». Тогда это работает.

+0

Неправильное использование. Двойным классом является 'RSpec :: Mocks :: Double'. Этот класс также не реализует 'i18n_scope'. Вы можете увидеть мой ответ здесь: http://stackoverflow.com/questions/33037136/stub-i18n-scope-for-mocking-activerecordrecordinvalid-on-rails-4-rspec-3-3-0/34361086#34361086. По крайней мере, для RSpec 3.3+ – daino3

 Смежные вопросы

  • Нет связанных вопросов^_^