जब मैं कुछ करता हूं तो मुझे आश्चर्य होता है कि यहां पूछे गए प्रश्न स्रोत पर क्यों जाते हैं।
होने के लिए()
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)
सत्य सत्य हैं।