0

我正在进行 RSpec 测试,检查 auser是否为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

关于我可能遗漏的任何想法?一切都在浏览器中完美运行,但是当我运行规范时它似乎失败了。提前感谢您的帮助!

4

1 回答 1

0

经过两天的工作,我没有意识到我错过了实用程序方法,doh!

以下是所有工作的原因(在 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
于 2012-07-12T20:57:19.670 回答