- 레일 (5.1.4)
- RSpec에 레일 (3.7.2)
- 카피 바라가 (2.16.1)
- 유증 (4.3.0)
내가하려고 해요 https://relishapp.com/rspec/rspec-rails/v/3-7/docs/system-specs/system-spec에서와 같이 RSpec Rails 3.7 시스템 스펙을 작성하십시오.RSpec + Capybara + Devise : current_user?
또한 Devise 권한을 적용하고 싶습니다. 나는 그 지시를 따랐다. https://github.com/plataformatec/devise/wiki/How-To:-Test-with-Capybara
그러나 결함이있는 구현이라고 생각한다. 나는 메쏘드를 얻지 못했다. (즉, nil
). 여기
내 간단한 사양 :
require 'rails_helper'
RSpec.describe "testing system", type: :system do
it "tests the spec" do
admin = create(:admin) # user-admin
login_as(admin, :scope => :admin)
visit root_path
click_link 'Home'
save_and_open_page
end
end
내 사이트에 코드가 current_user
값에 크게 의존하기 때문에, 나는 제대로 형성 저장된 페이지를하지 않습니다 (사용자가 로그인하지 않은 것 같습니다) .
어떻게해야합니까? 단순히 수동으로 (어떻게 든?) 값을 current_user
에 할당해야합니까? 또는 https://github.com/plataformatec/devise/wiki/How-To:-Test-with-Capybara 전략이 주로 결함이며 더 완벽한 기술로 대체되어야합니까? 하지만 결과 -
current_user = admin
를 만들기 위해 노력했다.
예, 문제는'login_as (admin, : scope => : user)'및'login_as (admin)'도 마찬가지입니다. Devise 문서만으로는 충분하지 않았습니다. 그리고 물론, 필자는 사양 내에서'current_user'에 액세스 할 필요가 없습니다. 테스트중인 코드 내에서만 작동하도록 필 요합니다. 감사. – prograils