2014-12-22 2 views
1

내 모델 및 컨트롤러 사양이 잘 돌아가고 있지만 레일 4.2로 업그레이드 한 후 Capybara를 사용하는 기능 스펙이 더 이상 작동하지 않습니다. 예 :이 사양을 실행하면Rails 4.2로 업그레이드하면 rspec 기능 사양이 손상됩니다 - 이유는 무엇입니까?

#in spec_helper.rb: 
def login_admin 
    create(:user, 
     first_name: 'John', 
     last_name: 'Doe', 
     email: '[email protected]', 
     admin: true) 

    visit root_path 
    fill_in 'email', with: '[email protected]' 
    fill_in 'password', with: 'password1' 
    click_button 'Log in' 
    puts 'created' 
end 

#in spec/features/albums_spec.rb 
feature "Albums", :type => :feature do 
    before(:each) do 
    login_admin 
    end 

    scenario 'do something' do 
    save_and_open_page 
    end 
end 

,이 완료되지 않습니다, 합격 또는 불합격. 오류가 발생하지 않습니다. 그냥 거기 앉아 커서 아래에 앨범을 보여줍니다. '만든'은 표준 출력되지 않으며, save_and_open_page 호출에 의해 페이지가 실행되지 않습니다. 테스트 로그는 erb 파일이 로그인 액션에 의해 렌더링 된 것을 보여줍니다. 이것은 레일 4.2 업그레이드 이전에 모두 작동했습니다.

사양 실행 중에 만 실패합니다. 브라우저에서 앱을 사용하면 문제가 없습니다.

무엇이 여기에 있습니까?

+0

업그레이드의 일부로 rspec도 업그레이드됩니까? – Doon

+0

@Doon - 아니요, 이미 최신 버전이었습니다 – croceldon

답변

2

UPDATE : 카피 바라/RSpec에 관련된 가능한 문제 : 그들은 다른 스레드에서 만든 있기 때문에

  1. 한주의 사항, 기능 사양의 모델을 생성. 대신 카피 바라 단계를 사용하여 사용자를 만듭니다 (즉, 매번 사용자를 "가입").

  2. 사이트를 클릭하여 만들 수없는 시나리오로 데이터베이스를 준비해야하는 경우 앱에 간단한 "관리"영역 (어쨌든 필요합니다) 또는 관리 API 인터페이스를 구현하거나 CSV 업로드 옵션과 같은 것.

  3. 그렇지 않으면 기능 사양의 모델 생성을 지원하기위한 설정을 위해 "capybara rspec database_cleaner append_after"를 검색 할 수 있지만 솔루션 중 아무 것도 실제로 표시되지 않습니다. -증명. 당신이 시도 할 수 : 나는/데이터베이스 작업에 부착 된 귀하의 예를 추측하고있어 https://github.com/RailsApps/rails_apps_testing

(끝 다른 스레드에서 DB 연결을 기다리는).

PREVIOUS 답변 :

몇 가지 아이디어 :

  1. 캐치 login_admin 방법에서 예외 STDERR.puts
  2. 가 click_button을 제거하고 예상대로 실패 할 경우 참조 사용하여 인쇄는 (당신에게 보여줍니다 암호가
  3. 에 입력 한 후 로그인 페이지)
  4. 은 카릭을 별도의 sleep 4를 추가 (사람이 달려있는 볼)이 호출에 k_button :

    btn = find(:button, locator, options) 
    STDERR.puts "found: #{btn.inspect}" 
    btn.click 
    
  5. 사용 bundle show capybara을이 어디에 있는지 찾으려면 찾기를 편집 (또는 클릭) 방식과 STDERR.puts 방법에 넣어가보고 무엇을 잘못

+0

이것은 내 파트에서 rspec을 올바르게 사용하지 않았을 때 문제가되는 것으로 나타났습니다. 약간의 리팩토링 후, 이제는 올바르게 작동합니다. 그래도 좋은 문제 해결 팁. – croceldon

관련 문제