अपेक्षा (Expect)
जब आप परीक्षण लिख रहे होते हैं, तो अक्सर आपको यह जांचने की आवश्यकता होती है कि मान कुछ निश्चित शर्तों को पूरा करते हैं। expect आपको कई "मैचर्स" तक पहुंच प्रदान करता है जो आपको browser, element या mock ऑब्जेक्ट पर विभिन्न चीजों को सत्यापित करने की अनुमति देते हैं।
डिफ़ॉल्ट विकल्प
नीचे दिए गए ये डिफ़ॉल्ट विकल्प कॉन्फ़िग में सेट किए गए waitforTimeout और waitforInterval विकल्पों से जुड़े हैं।
केवल नीचे दिए गए विकल्पों को सेट करें अगर आप अपने दावों के लिए विशिष्ट टाइमआउट का इंतजार करना चाहते हैं।
{
wait: 2000, // ms to wait for expectation to succeed
interval: 100, // interval between attempts
}
अगर आप अलग-अलग टाइमआउट और इंटरवल चुनना चाहते हैं, तो इन विकल्पों को इस प्रकार सेट करें:
// wdio.conf.js
import { setOptions } from 'expect-webdriverio'
export const config = {
// ...
before () {
setOptions({ wait: 5000 })
},
// ...
}
मैचर विकल्प
प्रत्येक मैचर कई विकल्प ले सकता है जो आपको दावे को संशोधित करने की अनुमति देता है:
कमांड विकल्प
| नाम | प्रकार | विवरण |
|---|---|---|
wait | number | अपेक्षा के सफल होने के लिए प्रतीक्षा करने का समय ms में। डिफ़ॉल्ट: 3000 |
interval | number | प्रयासों के बीच का अंतराल। डिफ़ॉल्ट: 100 |
beforeAssertion | function | वह फ़ंक्शन जिसे दावा करने से पहले कॉल किया जाएगा |
afterAssertion | function | वह फ़ंक्शन जिसे दावा करने के बाद कॉल किया जाएगा, जिसमें दावा परिणाम शामिल हैं |
message | string | दावा त्रुटि से पहले जोड़ने के लिए उपयोगकर्ता संदेश |
स्ट्रिंग विकल्प
यह विकल्प कमांड विकल्पों के अतिरिक्त लागू किया जा सकता है जब स्ट्रिंग्स का दावा किया जा रहा हो।
| नाम | प्रकार | विवरण |
|---|---|---|
ignoreCase | boolean | वास्तविक और अपेक्षित दोनों मानों पर toLowerCase लागू करें |
trim | boolean | वास्तविक मान पर trim लागू करें |
replace | Replacer | Replacer[] | वास्तविक मान के उन हिस्सों को बदलें जो स्ट्रिंग/RegExp से मेल खाते हैं। प्रतिस्थापक एक स्ट्रिंग या फ़ंक्शन हो सकता है। |
containing | boolean | वास्तविक मान में अपेक्षित मान शामिल होने की अपेक्षा करें, अन्यथा सख्त बराबर। |
asString | boolean | प्रॉपर्टी मान को स्ट्रिंग में कन्वर्ट करने के लिए मददगार हो सकता है |
atStart | boolean | वास्तविक मान के अपेक्षित मान से शुरू होने की अपेक्षा करें |
atEnd | boolean | वास्तविक मान के अपेक्षित मान के साथ समाप्त होने की अपेक्षा करें |
atIndex | number | वास्तविक मान में दिए गए इंडेक्स पर अपेक्षित म ान होने की अपेक्षा करें |
नंबर विकल्प
यह विकल्प कमांड विकल्पों के अतिरिक्त लागू किया जा सकता है जब नंबरों का दावा किया जा रहा हो।
| नाम | प्रकार | विवरण |
|---|---|---|
eq | number | बराबर |
lte | number | कम से बराबर |
gte | number | अधिक से बराबर |
HTML एंटिटीज़ का हैंडलिंग
एक HTML एंटिटी टेक्स्ट का एक टुकड़ा ("स्ट्रिंग") है जो एंपरसैंड (&) से शुरू होता है और सेमीकोलन (;) पर समाप्त होता है। एंटिटीज़ का उपयोग अक्सर आरक्षित वर्णों (ज िन्हें अन्यथा HTML कोड के रूप में व्याख्या किया जाएगा) और अदृश्य वर्णों (जैसे नॉन-ब्रेकिंग स्पेस, जैसे ) को प्रदर्शित करने के लिए किया जाता है।
ऐसे एलिमेंट को खोजने या उसके साथ इंटरैक्ट करने के लिए एंटिटी के यूनिकोड समतुल्य का उपयोग करें। उदाहरण के लिए:
<div data="Some Value">Some Text</div>
const myElem = await $('div[data="Some\u00a0Value"]')
await expect(myElem).toHaveAttribute('data', 'div[Some\u00a0Value')
await expect(myElem).toHaveText('Some\u00a0Text')
आप सभी यूनिकोड संदर्भ HTML स्पेक में पा सकते हैं।
नोट: यूनिकोड केस-इनसेंसिटिव है इसलिए \u00a0 और \u00A0 दोनों काम करते हैं। ब्राउज़र इंस्पेक्ट में एलिमेंट खोजने के लिए, यूनिकोड से u हटा दें जैसे: div[data="Some\00a0Value"]