मैं एक वेब अनुप्रयोग है कि लगातार सर्वर अजाक्स अनुरोध का उपयोग करने से डेटा के लिए चुनाव। मैं zombie.js का उपयोग कर इसके लिए एकीकरण परीक्षण लागू करना चाहता हूं।कैसे zombie.js में browser.wait() उपयोग कैसे करें?
मुझे क्या करना कोशिश कर रहा हूँ जब तक अजाक्स चुनाव पाश सर्वर से डेटा प्राप्त प्रतीक्षा करने के लिए है। डेटा 20 सेकंड के बाद प्राप्त हो जानी चाहिए, इसलिए मैं browser.wait(done, callback)
का उपयोग करता है, तो डेटा नहीं है की जाँच करने के लिए, और एक मिनट की एक अधिकतम समय समाप्ति के waitFor
निर्धारित किया है।
हालांकि, browser.wait()
हमेशा लगभग तुरंत लौटाता है, भले ही मेरा done
कॉलबैक झूठा रिटर्न देता है।
zombie API documentation में, मैं पढ़ने के लिए निम्नलिखित के बारे में browser.wait()
:
... इसे हमेशा के लिए इंतजार नहीं कर सकता, विशेष रूप से टाइमर कि बार-बार (उदाहरण के लिए जाँच पेज राज्य, लंबे समय से मतदान) लागू किए जा सकते के लिए नहीं।
मुझे लगता है कि व्यवहार मैं देख रहा हूँ के लिए कारण है, लेकिन मैं वास्तव में समझ में नहीं आता क्या हो रहा है। मेरे मतदान लूप को सर्वर से डेटा प्राप्त होने तक मैं एक मिनट तक क्यों इंतजार नहीं कर सकता? browser.wait()
क्यों नहीं बार-बार आग लगने वाले टाइमर की प्रतीक्षा कर सकते हैं? मेरे परीक्षण को लागू करने के लिए मुझे क्या करने की ज़रूरत है?
क्या आपने इस बारे में कुछ नया खोजा? –
बस यह सुनिश्चित करने के लिए: आप 'waitFor' के लिए मिलीसेकंड का उपयोग कर रहे हैं, है ना? मैं अनुभव की बात करता हूं;) इसके अलावा, 'maxWait' के बारे में मत भूलना। – robertklep
"सर्वर से डेटा के लिए लगातार मतदान" - यदि आपके पास इस पर नियंत्रण है, तो 'socket.io' एक उत्कृष्ट विकल्प होगा – jcollum