使用Rails 5.1
与Vue.js 2.5
我一直在尝试将此错误诊断为3天,而且我的智慧结束了。我已经开始使用标准Capybara
使用selenium-webdriver
添加系统测试。
当我尝试访问可验证的路由时出现问题,例如,用户设置:
RSpec.describe 'home page', type: :system do
before(:context) do
WebMock.disable_net_connect!(allow_localhost: true)
end
after do
Warden.test_reset!
end
context 'when logged in' do
context 'as an average user' do
before do
@profile = create(:profile)
@user = @profile.user
@user.update(confirmed_at: Time.now)
login_as(@user, scope: :user)
end
it 'redirects to Account Settings page after pressing Account Settings' do
visit '/'
find('.profile-menu').hover
find('.settings').click
expect(page).to have_content 'Account Settings'
end
end
end
end
这不是一个链接,而是在我的.vue
文件中处理,该文件只会重定向到我需要的路线location.href = "/users/edit";
当我在根页面上时,我已登录,current_user
返回用户,一切都很棒。但是,只要我按下该链接,就会在重定向到标准Devise
登录页面时重置它。
如果我直接转到该页面visit '/users/edit
,但current_user
已设置且一切正常。
这是我的测试设置:
require 'devise'
RSpec.configure do |config|
config.include Warden::Test::Helpers
end
如果你需要一些额外的信息,请告诉我,我想我已经提供了所有关键部分,但可能遗漏了一些东西。
答案 0 :(得分:0)
我似乎解决了这个问题。我已经尝试了SO answer中提到的几件事。据我所知,修复它的原因是:
RSpec.configure do |config|
config.include Warden::Test::Helpers
end
到
RSpec.configure do |config|
config.include Devise::Test::IntegrationHelpers, type: :system
end
这也让我放弃了:
after(:each) do
Warden.test_reset!
end
在我的所有测试中。我已经进行了不少测试,他们不再失败了,所以我现在假设这已经确定了。