小编Yal*_*don的帖子

在集成测试中访问会话

我是一名 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

5
推荐指数
2
解决办法
3980
查看次数