2016-07-01 2 views
2

글쎄, 나는 AJAX 요청을 한 후에 버튼을 클릭하고 어떤 종류의 텍스트가 표시되는 ajax 페이지에서 테스트하기 위해 codeception을 사용했다. 코드 수락 테스트 : AJAX 요청을 테스트하는 방법?

$I->amOnPage('/clickbutton.html'); 
$I->click('Get my ID'); 
$I->see('Your user id is 1', '.divbox'); 

보시다시피

은, 테스트가 반환된다 '사용자 ID가 {$ ID가}이다'하는 방식으로 작동하는 가정되는과 사업부 상자를 업데이트하고 (이 경우에 1 ID) 본문. 그러나 그것은 전혀 작동하지 않으며, 대신 테스트는 div 상자가 비어 있다고 말합니다. 나는 무엇을 잘못 했는가? 어떻게 AJAX 요청을 테스트하기 위해 코드화를 사용할 수 있습니까?

+0

WebDriver 모듈을 사용하십시오. – Naktibalda

답변

0

div를 확인할 때까지 요청이 완료 되었습니까? 요청을 보낸 후 약간의 대기를 추가하십시오 : 당신은이를 사용할 수 있습니다

$I->amOnPage('/clickbutton.html'); 
$I->click('Get my ID'); 

$I->wait(1); //add this 

$I->see('Your user id is 1', '.divbox'); 
1

: (초)

$I->click('#something'); 
$I->waitForText('Something that appears a bit later', 20, '#my_element'); 

20 = 제한 시간을, 그에게 약간 제정신 값을 제공합니다.

$I->wait(X);과 같은 것들을 부수기보다는 좀 더 유연합니다. 보통 초를 기다리는 것보다 훨씬 빠르기 때문입니다. 예를 들어, "기다려야 할"요소가 많은 경우 15-20을 가정 해 봅시다. 실제 작업이 총 1-2 초에 완료되는 동안 테스트는 "대기"하고 15-20 초를 소비합니다. 많은 테스트에서 이것은 빌드 시간을 현저하게 늘릴 수 있습니다. 이는 좋지 않습니다. :)

관련 문제