我正在使用
测试test/models/user_test.rb
test "should validate login" do
visit new_user_session
fill_in "email", with: 'test@test.com'
fill_in "password", with: 'testtest'
click_button "Sign in"
assert_equal some_url, current_path
end
当我运行ruby -Itest test/models/user_test.rb
时,收到此错误消息
UserTest#test_should_validate_login:
NameError: undefined local variable or method `new_user_session' for #<UserTest:0x007fcbd8e98378>
test/models/user_test.rb:22:in `block in <class:UserTest>'
如果我将new_user_session
更改为path
提供的任何其他rake routes
,我会收到相同的消息,即undefined local variable or method
路径'。有人可以帮忙吗?
答案 0 :(得分:1)
看起来你正在进行集成测试,但是在模型测试中编写它。模型测试不会加载路由和其他细节供您使用。
答案 1 :(得分:0)
您需要将path
或url
附加到new_user_session
的末尾以获取实际路径:
test "should validate login" do
visit new_user_session_path
fill_in "email", with: 'test@test.com'
fill_in "password", with: 'testtest'
click_button "Sign in"
assert_equal some_url, current_path
end
有关详细信息,请参阅Rails路由指南的the path and url helpers部分。