2012-12-13 3 views
1

내 응용 프로그램의 동작을 테스트하기 위해 capybara를 사용하고 있습니다. 페이지로드시 실행되는 페이지에 일부 js 코드가 있습니다. 서버에 ajax 요청을 보냅니다. 요청에 대한 매개 변수를 테스트하고 싶습니다. 어떻게 액세스 할 수 있습니까?Capybara ajax 요청 매개 변수

답변

0

page.evaluate_script 방법을 사용하면 자바 스크립트를 실행하고 결과를 얻을 수 있습니다. 매개 변수 값을 변수에 저장하면 액세스 할 수 있습니다.

예 :

result = page.evaluate_script('4 + 4'); 

참조 : https://github.com/jnicklas/capybara#scripting

+0

어딘가에 저장되지 않은 아약스 요청에 포함 된 매개 변수에 액세스해야합니다. last_request 개체 나 다른 뭔가에 액세스해야합니다 ... – VadimAlekseev

0

난 당신이 한 번에이를 테스트 할 수 있다고 생각하지 않습니다. 테스트에서 page_evaluate를 사용하여 값을 변수에 저장할 수 있지만 이는 간단한 요청에만 적용됩니다. 위 Siddick가 지적했듯이 당신은 변수에 아약스 호출의 값을 저장할 수 :

result = page.evaluate_script("response_of_your_ajax_call") 

단순히 실제 아약스와 response_of_your_ajax_call를 교체합니다. 이것은 통합 테스트가 아니기 때문에 여러분의 js 유닛 테스트에 훨씬 가깝습니다. 이 방법으로 테스트를 작성한다면 최종 사용자가 아약스 요청 (링크, 버튼 등 클릭)을 트리거하기 위해 수행 할 작업을 시뮬레이트하는 테스트를 작성하는 것이 좋습니다.