对于几乎所有的集成测试,用户必须先登录设计。 这需要大量的时间,所以我想知道是否有建立用户会话,而无需访问登录页面,输入详细信息,并按下登录按钮的方式。
也许有内置设计一个辅助方法是立即签署一个给定的用户?
非常感谢帮助。
对于几乎所有的集成测试,用户必须先登录设计。 这需要大量的时间,所以我想知道是否有建立用户会话,而无需访问登录页面,输入详细信息,并按下登录按钮的方式。
也许有内置设计一个辅助方法是立即签署一个给定的用户?
非常感谢帮助。
在您的规范文件的文件头,插入include Warden::Test::Helpers
和Warden.test_mode!
, 像这样:
require 'spec_helper'
include Warden::Test::Helpers
Warden.test_mode!
describe "AuthenticationPages" do
let(:user) { FactoryGirl.create(:user) }
before { login_as(user, scope: :user }
...
在上面的代码中,我使用FactoryGirl创建一个用户。 你可以用你喜欢创建用户的其他方式。 然后我登录user
通过使用方法login_as
。 然后你可以运行任何测试,您可以确保user
在已loged。我想这是你想要的,希望这帮助。 你可以在这里看到更多的细节测试与水豚 。
编辑
为了确保这一工作正常,您将需要每次测试后重置典狱长可以通过调用做到这一点
Warden.test_reset!
如果由于某种原因需要注销测试用户登录后,就可使用守望者注销帮手。
logout(:user)