私は、Michael Hartl's Railsチュートリアルで働いているRailsの初心者です。エラーを受け取りました。修正方法はわかりません。参考までに、これはリスト9.24(https://www.railstutorial.org/book/advanced_login)の変更を実装するためのものです。統合テストでのセッションへのアクセス
私は第9章をスキップしましたが(これはおそらくオプションです)、第10章では、リスト9.24の変更を含めて質問しています。
これは私が実行したときに、私は受け付けており、エラーが失敗している(テスト/統合/ users_edit_test.rbで)テスト
Error:
UsersEditTest#test_unsuccessful_edit:
NoMethodError: undefined method `session' for nil:NilClass
test/test_helper.rb:18:in `log_in_as'
test/integration/users_edit_test.rb:14:in `block in <class:UsersEditTest>'
bin/rails test test/integration/users_edit_test.rb:12
E
Error:
UsersEditTest#test_successful_edit:
NoMethodError: undefined method `session' for nil:NilClass
test/test_helper.rb:18:in `log_in_as'
test/integration/users_edit_test.rb:28:in `block in <class:UsersEditTest>'
テストレールでは、次のとおりです。ここで
test "successful edit" do
log_in_as(@user)
get edit_user_path(@user)
... end
test "unsuccessful edit" do
log_in_as(@user)
get edit_user_path(@user)
... end
と統合された/ test_helperメソッドは、呼び出されている
# Log in as a particular user.
def log_in_as(user)
session[:user_id] = user.id
end
特に混乱しているのは、テストヘルパにはセッションを使用する別のメソッドがあり、うまく動作するuser_login_testで呼び出されます。
ご協力いただければ幸いです!