【问题标题】:Undefined method `i18n_scope' for RSpec::Mocks::Mock:ClassRSpec::Mocks::Mock:Class 的未定义方法“i18n_scope”
【发布时间】:2015-08-18 07:20:38
【问题描述】:

我最近升级到 Rails 4。当我运行 RSpec 测试时出现错误。

这是我的规格:

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

我在第 3 行收到错误 <NoMethodError: undefined method 'i18n_scope' for RSpec::Mocks::Mock:Class>

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

【问题讨论】:

标签: ruby-on-rails-4 internationalization rspec-rails rspec2 rspec-mocks


【解决方案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:Class 正在寻找 'i18n_scope' 方法。但为了修复它,我使用了“i18n_scope”。然后就可以了。

【讨论】:

  • 这是不正确的。双人班是RSpec::Mocks::Double。这个类也没有实现i18n_scope。你可以在这里看到我的答案:stackoverflow.com/questions/33037136/…。至少对于 RSpec 3.3+
猜你喜欢
  • 2014-08-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多