Mar*_*rty 5 ruby testing ruby-on-rails ruby-on-rails-4
我有一个帮助文件,app/helpers/sessions_helper.rb其中包含一个my_preference返回当前登录用户首选项的方法.我想在集成测试中访问该方法.例如,我可以get user_path(my_preference)在我的测试中使用.
在其他帖子中我读到这可能是通过包含require sessions_helper在测试文件中,但我仍然得到错误NameError: undefined local variable or method 'my_preference'.我究竟做错了什么?
require 'test_helper'
require 'sessions_helper'
class PreferencesTest < ActionDispatch::IntegrationTest
test "my test" do
...
get user_path(my_preference)
end
end
Run Code Online (Sandbox Code Playgroud)
你的错误信息说:
NameError: undefined local variable or method 'my_preference'
Run Code Online (Sandbox Code Playgroud)
这意味着您无权访问my_preference方法.要在课堂上使用它,您必须使用班级中include的模块.
你必须SessionsHelper在你的PreferencesTest班级中包括你的模块.
include SessionsHelper
Run Code Online (Sandbox Code Playgroud)
然后,my_preference您可以在测试中使用实例方法.
所以,你想做:
require 'test_helper'
require 'sessions_helper'
class PreferencesTest < ActionDispatch::IntegrationTest
include SessionsHelper
test "my test" do
...
get user_path(my_preference)
end
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1393 次 |
| 最近记录: |