2013-04-27 1 views
1

현재 작업중인 레일스 애플리케이션에서 필드가 채워지지 않고 양식이 제출되면 오류 메시지가 표시되는 페이지가 있습니다.레일 뷰에서 클라이언트 유효성 검사를위한 테스트

필드에서 클라이언트 측 유효성 검사는 jQuery를 사용하여 수행됩니다 그리고 내가 수동으로

테스트 양식은 모든 필드에 대한 데이터가 입력되지 않을 때 제출되는 정지하면, 브라우저에서 잘 작동 사용자.

내가 재스민 보았다이

  1. 에 대한 테스트를 작성하는 내 옵션은 무엇입니까,하지만 난 자바 스크립트 함수 자체를 테스트 할 때 더 유용 할 것, 도움이되지는 이벤트 경우 테스트 페이지에서 제대로 발사됩니다. (내가 이에 대한 잘못된 생각하면 알려주세요)

  2. 나는 RSpec에 보았다이

    require 'spec_helper' 
    describe 'Sample Test Page' do  
    
        it 'should show error when Some Field is not specified' do 
        visit '/sample_page' 
        click_button "Submit" 
        page.should have_content 'You forgot to Enter details in Some Field' 
        end 
    end 
    
같은 테스트를 썼다

하지만 여기서는 양식이 유효성 검사없이 제출되어 오류가 발생합니다 (응용 프로그램이 빈 값으로 오류를 발생시키기 때문에)

가장 좋은 옵션은 무엇입니까? Rails 철학에서 이것을 테스트하는 데 도움이되는 또 다른 도구가 있습니까?

답변

2

통합 테스트에서 JavaScript를 테스트해야하는 경우 JavaScript를 지원하는 웹 드라이버를 선택하도록 명시 적으로 지정해야합니다.

귀하의 경우 Webrat을 사용했지만 빠르지 만 JS를 지원하지 않으므로 테스트에 실패했습니다.

자바 스크립트의 기본 웹 드라이버는 Selenium입니다. 그것을 사용하려면, 단지 그 다음이 블록에서 모든 검사를 셀레늄에서 실행됩니다

describe 'Sample Test Page', js: true do 

에이 라인

describe 'Sample Test Page' do 

을 변경합니다. 테스트를 실행하기위한 실제 브라우저 팝업이 표시됩니다.

+0

감사 빌리, 나는 그것을 시도 할 것이다. – user773327

관련 문제