जब मैं कुछ करता हूं तो मुझे आश्चर्य होता है कि यहां पूछे गए प्रश्न स्रोत पर क्यों जाते हैं।
होने के लिए()
expect().toBe() की तरह परिभाषित किया गया है:
function toBe() {
return {
compare: function(actual, expected) {
return {
pass: actual === expected
};
}
};
}
यह अपना परीक्षण करता है ===जिसका अर्थ है कि जब इसका उपयोग किया जाता है expect(foo).toBe(true), तो यह तभी पास होगा जब fooवास्तव में इसका मूल्य होगा true। सत्य मान परीक्षण पास नहीं करेगा।
toBeTruthy ()
expect().toBeTruthy() की तरह परिभाषित किया गया है:
function toBeTruthy() {
return {
compare: function(actual) {
return {
pass: !!actual
};
}
};
}
जबरदस्ती टाइप करें
एक मूल्य सत्य है यदि इस मूल्य का बूलियन एक मूल्य का उत्पादन करता है true। एक बूलियन को !!पारित मूल्य के लिए मजबूर करके सच्चाई के लिए ऑपरेशन परीक्षण expect। ध्यान दें कि इसके विपरीत जो वर्तमान में स्वीकार किए जाते हैं जवाब देने के लिए निकलता है , == trueहै न truthiness के लिए एक सही परीक्षण। आपको मजेदार चीजें पसंद आएंगी
> "hello" == true
false
> "" == true
false
> [] == true
false
> [1, 2, 3] == true
false
!!पैदावार का उपयोग करते हुए :
> !!"hello"
true
> !!""
false
> !![1, 2, 3]
true
> !![]
true
(हाँ, खाली या नहीं, एक सरणी सत्य है।)
सत्य होने के लिए()
expect().toBeTrue()जैस्मीन-मैचर्स का हिस्सा है (जो jasmine-expectबाद में पंजीकृत jasmine-matchersपहले प्रोजेक्ट के बाद npm पर पंजीकृत है )।
expect().toBeTrue() की तरह परिभाषित किया गया है:
function toBeTrue(actual) {
return actual === true ||
is(actual, 'Boolean') &&
actual.valueOf();
}
के साथ अंतर expect().toBeTrue()और यह है कि यह परीक्षण करता expect().toBe(true)है कि expect().toBeTrue()क्या यह किसी Booleanवस्तु के साथ काम कर रहा है । expect(new Boolean(true)).toBe(true)पास नहीं होने पर फेल हो expect(new Boolean(true)).toBeTrue()जाएगा। इसकी वजह है इस मज़ेदार बात:
> new Boolean(true) === true
false
> new Boolean(true) === false
false
कम से कम यह सत्य है:
> !!new Boolean(true)
true
किसके साथ उपयोग करने के लिए सबसे उपयुक्त है elem.isDisplayed()?
अंततः प्रोट्रेक्टर ने इस अनुरोध को सेलेनियम को सौंप दिया। प्रलेखन कहा गया है कि द्वारा उत्पादित मूल्य .isDisplayed()एक वादा है कि एक पर ले कर जाता है boolean। मैं इसे अंकित मूल्य और उपयोग में ले जाएगा .toBeTrue()या .toBe(true)। अगर मुझे ऐसा मामला मिला जहां कार्यान्वयन सत्य / झूठे मूल्यों को लौटाता है, तो मैं एक बग रिपोर्ट दर्ज करूंगा।
.toBe(true)==.toBeTrue()। toBeTruthy () केवल सच पर ही नहीं , बल्कि 123 पर , "dfgdfg", [1,2,3] आदि पर भी सत्य हो सकता है ... मूल रूप से सत्य हैंif(x==true), जबकिif(x===true)सत्य सत्य हैं।