Ajax 요청을 사용하여 서버의 데이터를 지속적으로 폴링하는 웹 애플리케이션이 있습니다. zombie.js을 사용하여 통합 테스트를 구현하고 싶습니다.zombie.js에서 browser.wait()를 사용하는 방법?
내가하려는 것은 Ajax 폴링 루프가 서버로부터 데이터를 수신 할 때까지 기다리는 것이다. 데이터는 20 초 후에 수신되어야합니다. 따라서 browser.wait(done, callback)
을 사용하여 데이터가 있는지 확인하고 waitFor
을 최대 시간 초과 1 분으로 설정하십시오.
그러나 done
콜백이 false를 반환하더라도 항상 browser.wait()
이 거의 즉시 반환됩니다. zombie API documentation에서
browser.wait()
:
... 그것은 특히하지 반복적으로 (예를 들어, 확인 페이지 상태, 롱 폴링)을 발광 할 수 있습니다 타이머를 들면, 영원히 기다릴 수 없습니다.
나는 그것이 내가하는 행동의 이유라고 생각하지만, 실제로 어떤 일이 일어나는지 이해하지 못합니다. 폴링 루프가 서버에서 데이터를 수신 할 때까지 1 분 동안 기다릴 수없는 이유는 무엇입니까? browser.wait()
반복적으로 발사 할 수있는 타이머를 기다릴 수없는 이유는 무엇입니까? 테스트를 이행하기 위해해야 할 일은 무엇입니까?
새로운 기능이 있습니까? –
단지'waitFor'에 밀리 초를 사용하고있는 것입니다. 맞습니까? 나는 경험에 대해 이야기한다.) 또한, 'maxWait'을 잊지 마라. – robertklep
"서버에서 데이터를 지속적으로 폴링합니다"-이 문제를 제어 할 수 있다면'socket.io'가 훌륭한 대안이 될 것입니다 – jcollum