Tôi đã có một ứng dụng web liên tục thăm dò dữ liệu từ máy chủ bằng cách sử dụng các yêu cầu Ajax. Tôi muốn triển khai thử nghiệm tích hợp cho nó bằng cách sử dụng zombie.js.Cách sử dụng browser.wait() trong tệp zombie.js?
Điều tôi đang cố gắng làm là chờ đến khi vòng lặp thăm dò ý kiến Ajax nhận dữ liệu từ máy chủ. Dữ liệu sẽ được nhận sau 20 giây, vì vậy tôi sử dụng browser.wait(done, callback)
để kiểm tra xem dữ liệu có ở đó không và đặt waitFor
thành thời gian chờ tối đa là một phút.
Tuy nhiên, browser.wait()
luôn trả về gần như ngay lập tức, ngay cả khi số gọi lại done
của tôi bị lỗi.
Trong zombie API documentation, tôi đọc phần sau đây về browser.wait()
:
... nó không thể chờ đợi mãi mãi, đặc biệt là không cho giờ có thể bắn liên tục (ví dụ kiểm tra trạng thái trang, bỏ phiếu dài).
Tôi đoán đó là lý do cho hành vi mà tôi thấy, nhưng tôi thực sự không hiểu điều gì đang xảy ra. Tại sao tôi không thể đợi một phút cho đến khi vòng lặp thăm dò ý kiến của tôi nhận dữ liệu từ máy chủ? Tại sao không thể browser.wait()
chờ các bộ hẹn giờ có thể kích hoạt liên tục? Tôi cần làm gì để thực hiện bài kiểm tra của mình?
Bạn có khám phá điều gì mới về điều này không? –
Chỉ cần đảm bảo: bạn đang sử dụng mili giây cho 'waitFor', đúng không? Tôi nói về kinh nghiệm;) Ngoài ra, đừng quên về 'maxWait'. – robertklep
"liên tục thăm dò dữ liệu từ máy chủ" - nếu bạn có quyền kiểm soát này, 'socket.io' sẽ là một thay thế tuyệt vời – jcollum