2

숫자가 잘못된 내 모든 테스트 충돌 내 rspec 테스트에서 PhantomJS/Poltergeist/Capybara를 사용하여 화면을 올바르게 렌더링하지 못합니다.포함 카피 바라 :: DSL 난 아직도 기본이 질문에 설명 된 문제를 해결하기 위해 노력하고 인수

@ theSociable.me에서 제공하는 작은 스크립트 (내가이 테스트를 단독으로 실행하는 경우) Poltergeist/Capbybara를 통해 내 화면을 렌더링 할 수 있습니다! 큰! 내가 선을 추가 할 때

그러나들은 모두이 오류와 함께 실패 시작, 내 테스트에 :: DSL을 카피 바라를 포함

Failure/Error: visit signin_path 
    ActionView::Template::Error: 
     wrong number of arguments (0 for 1) 

하는, 나는 역 추적 따르는 경우 :

# ./app/models/user.rb:118:in `authenticate_with_salt' 
# ./app/helpers/sessions_helper.rb:67:in `user_from_remember_token' 
# ./app/helpers/sessions_helper.rb:25:in `current_user' 
# ./app/helpers/sessions_helper.rb:31:in `signed_in?' 
# ./app/views/layouts/_header.html.erb:9:in `_app_views_layouts__header_html_erb__1456931984656374710_70286761365040' 
# ./app/views/layouts/application.html.erb:12:in `_app_views_layouts_application_html_erb___847298267570209394_70286745935080' 
# ./spec/requests/parties_spec.rb:22:in `block (2 levels) in <top (required)>' 
방문 signin_path 라인에 문제가 될 것으로 보인다

.. 내 프로젝트에 Capybara :: DSL을 포함시키는 이유가 갑자기 인증/서명과 관련된 모든 막대한 실패를 초래하는 이유는 무엇입니까?

감사합니다.

답변

1

Dave, 요청 사양의 내용을 확인해야하지만 Capadbara 2.x를 실행하고 있는데이 경우 통합 사양이 이고 spec/requests이 아닌 내부에 있어야합니다.

spec/requests은 API 테스트 (직접 GET 요청, 상태 코드 및 리디렉션 어서션 등) 용으로 예약되어 있으므로 Capybara DSL이 자동으로 수신되지 않는 이유는 무엇이든간에 spec/features 내부에있는 모든 사양은 Capabilities입니다.

우리는 Capybara DSL에 대한 액세스 권한을 요청 사양에 제공하려고 시도했지만 비슷한 문제가있었습니다. (필자는 아직 좋은 생각은 아니지만). 이것이 제가 끝을 보았던 해결책이며, 그것은 우리를 위해 일했습니다. 대신 전역 범위에있는 카피 바라 DSL 등의

이처럼 RSpec에 구성 블록 내에 포함해야합니다

# spec/spec_helper.rb 
RSpec.configure do |config| 
    config.include Capybara::DSL, type: :request 
end 

type: :request 부분이 DSL 만이 일치 시험에 포함되는 것을 보장 특정 유형, 내가 믿는 디렉토리 구조에 따라. 이것은 Capybara DSL에 액세스 할 수있는 다른 테스트 (예 : 기능 사양)를 방해하지 않는 것 같습니다.

문제가 해결되기를 바랍니다.

관련 문제