2011-11-02 3 views
2

저는 아직 Rails 2.3.x에 있고 Rspec, Capybara 및 Steak을 사용하여 몇 가지 수용 테스트를하고 있습니다.capybara를 사용하여 ajax를 통해 일어난 일을 주장하십시오.

2 개의 테스트를 작성할 수 있습니다. 하나는 js 드라이버를 사용하고 다른 하나는 일반 오래된 랙 테스트를 사용합니다.

이렇게 테스트 할 수 있습니까?

visit "/foo" 
click_link "Load a new Foo via ajax!" 
# assert foo loaded by ajax and not by browser natively following link 
page.should have_content("New foo here") 

제품 요구 사항은 "사용자가 활성화 자바 스크립트가있는 경우 페이지가 다시로드되지 않습니다"입니다 생각, 다른 방법을 넣습니다. 테스트에서이를 표현할 수있는 방법이 있습니까 (즉, 페이지가 전체적으로 다시로드되지 않았는지)?

답변

0

그래도 정상적으로 작동합니다. 카피 바라에는 기본 대기 시간이 있습니다. AJAX 요청을 처리하기에 충분히 길어야합니다. 자세한 정보는 다음과 같습니다. http://codetunes.com/2011/08/20/testing-ajax-reloaded-elements-with-capybara

또한 EM 영상 태그 문제를 살펴 보셨습니까?

+0

실제로 질문은 페이지 재로드 대신 AJAX를 통해 페이지에 콘텐츠가 있다는 것을 확인하는 것입니다 (즉, js가 비활성화 된 경우 테스트가 계속 진행되는 것으로 가정). – steve

관련 문제