我有一个集成测试,我需要调用 log_in函数(在Session Helper中定义),其参数是在一个fixture中创建的用户。
app/helpers/sessions_helper
module SessionsHelper
def log_in(user)
session[:user_id] = user.id
end
.
.
.
end
然后我有以下灯具test/fixtures/user.yml
johndoe:
first_name: John
last_name: Doe
email: john@doe.com
password_digest: <%= User.digest('password') %>
然后进行以下集成测试test/integration/user_navigation_test
require 'test_helper'
class UserNavigationTest < ActionDispatch::IntegrationTest
def setup
@user = users(:johndoe)
end
test "login with invalid information" do
log_in @user
end
end
当我运行测试时,出现以下错误。
ERROR["test_login_with_invalid_information", UserNavigationTest, 1.2090159619983751]
test_login_with_invalid_information#UserNavigationTest (1.21s)
NoMethodError: NoMethodError: undefined method `log_in' for #<UserNavigationTest:0x000000065cb3f8>
test/integration/user_navigation_test.rb:10:in `block in <class:UserNavigationTest>'
我试图在test_helper
中声明log_in函数,但它也没有工作;显然与配置有关。
我该如何处理?