Jos*_*eim 6 rspec ruby-on-rails devise capybara
对于几乎每个集成测试,用户都必须登录到Devise.这需要花费很多时间,所以我想知道是否有办法设置用户会话而无需访问登录页面,输入详细信息,然后按登录按钮.
也许在Devise中内置了一个帮助方法,可以立即在给定用户签名?
非常感谢您的帮助.
Tha*_*anh 16
在spec文件的标题中,插入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 }
...
Run Code Online (Sandbox Code Playgroud)
在上面的代码中,我使用FactoryGirl来创建用户.您可以使用其他方式来创建用户.然后我user使用方法登录login_as.然后你可以运行任何测试,你可以确定user已经插入.我认为这是你想要的,希望这个帮助.你可以在这里看到更多细节测试与水豚.
编辑
为确保此方法正常工作,您需要在每次测试后重置warden,方法是调用
Warden.test_reset!
Run Code Online (Sandbox Code Playgroud)
如果由于某种原因您需要注销登录的测试用户,您可以使用Warden的注销助手.
logout(:user)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3675 次 |
| 最近记录: |