8

私のspec_helper.rbに追加しました

config.include Devise::TestHelpers, :type => :controller

:all フックの前のコントローラー仕様では、このコードでユーザーにサインインしようとしています

 @request.env["devise.mapping"] = Devise.mappings[:user]
 user = FactoryGirl.create(:confirmed_user)
 sign_in user

NoMethodError: undefined method `env' for nil:NilClass を取得します。

何か案は?

4

4 に答える 4

15

に変更before(:all)しましたがbefore(:each)、動作するようになりました。devise(githubマスター ブランチを使用) とrspec2.14.1の間で API の非互換性があるようです。

于 2013-10-21T20:02:55.490 に答える
1

@request.env["devise.mapping"] = Devise.mappings[:user]Devise の内部コントローラーの仕様を記述する場合は、この行をコメントアウトしてください。Devise docsの test helpers セクションから参照。

于 2014-07-17T12:41:10.333 に答える