我正在进行RSpec测试,检查user
是否为administrator
,如果是,则显示一些其他字段。当我运行集成规范时,它会显示undefined method login
并失败。有谁知道为什么会发生这种情况?
以下是集成规范的相关部分(适用于非管理员测试):
context 'if logged in as an admin' do
let(:administrator) { FactoryGirl.create(:administrator) }
before { login administrator }
it 'creates an object upon submit' do
fill_in 'name', with: 'john doe'
...
end
end
在会话助手中,我有以下内容(它在浏览器中有效):
def login(user)
cookies.permanent[:remember_token] = user.remember_token
self.current_user = user
end
我可能遗失的任何想法?一切都在浏览器中完美运行,但在运行规范时似乎失败了。在此先感谢您的帮助!
答案 0 :(得分:0)
经过两天的研究,我没有意识到我错过了实用工具方法,呵呵!
以下是使所有工作(在spec / support / utilities.rb中)以供将来参考的原因:
def login(user)
visit login_path
fill_in "E-mail Address", with: user.email_address
fill_in "Password", with: user.password
click_button "Login"
cookies[:remember_token] = user.remember_token
end