我是一名 Rails 初学者,正在阅读 Michael Hartl 的 Rails 教程,但收到一个错误,我不知道如何修复。作为参考,这是为了实现清单 9.24 ( https://www.railstutorial.org/book/advanced_login ) 中的更改。
我跳过了第 9 章(因为它被认为是可选的)但在第 10 章中它要求包括清单 9.24 中所做的更改,所以我做了,但我的测试仍然失败。
这是我运行 rails test 时收到的错误
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>'
Run Code Online (Sandbox Code Playgroud)
失败的测试(在 test/integration/users_edit_test.rb 中)是:
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
Run Code Online (Sandbox Code Playgroud)
这是正在调用的集成/test_helper 方法
# …Run Code Online (Sandbox Code Playgroud) ruby testing integration-testing ruby-on-rails railstutorial.org