我的请求规范中有以下代码:
describe 'Poll' do
subject { page }
context 'as system admin' do
let(:user) { Fabricate(:system_admin) }
before { login user}
it 'is accessible' do
visit '/admin/poll'
current_path.should == '/admin/poll'
end
describe 'sending poll' do
it 'sends to all users' do
save_and_open_page
end
end
end
end
即使该方法似乎工作正常,登录用户似乎也不起作用。我尝试login user
在it 'is accessible' do
块内使用,如果我这样做,规范工作正常。如果我将它从那里移除并放在上面的before
块中。用户没有保持登录状态。我输入了一个save_and_open_page
进行调试,并在页面中收到此通知:
Your account was not activated yet. If a reset password link was sent to you, use that link to change your password.
我正在使用 Devise、RSpec、Capybara 和 Rails 3。我还在confirm!
我的 Fabrication 文件中设置了用户。下面是它的外观:
Fabricator(:system_admin) do
first_name { sequence(:first_name) { |n| "Person#{n}"} }
last_name { sequence(:last_name) {|n| "#{n}" } }
email { sequence(:email) { |n| "person_#{n}@example.com"} }
password "foobar"
password_confirmation "foobar"
company_name { sequence(:company_name) { |n| "google#{n}" } }
role "system_admin"
after_create do |user|
user.confirm!
user.create_company
end
end
问题:可能是什么问题?为什么用户没有保持登录状态,为什么我会收到提示我应该激活我的帐户的消息?还user.confirm!
不够吗?