RSpec:未定义的方法'登录'

时间:2012-07-12 20:41:36

标签: ruby-on-rails rspec integration-testing

我正在进行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

我可能遗失的任何想法?一切都在浏览器中完美运行,但在运行规范时似乎失败了。在此先感谢您的帮助!

1 个答案:

答案 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