1

最近、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>しました。

API ドキュメントによると、'i18n_scope' は Rails 4 から削除されました。

4

1 に答える 1

-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」をスタブ化しました。その後、動作します。

于 2015-08-18T08:50:10.877 に答える