ฉันจะทำอย่างไรเมื่อฉันสงสัยว่าคำถามที่ถามที่นี่คือไปที่แหล่งที่มา
เป็น()
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
};
}
};
}
ประเภทการข่มขู่
ค่าคือ truthy trueถ้าการข่มขู่ของค่านี้เพื่อบูลที่มีอัตราผลตอบแทนคุ้มค่า การ!!ทดสอบการดำเนินงานสำหรับความจริงโดยการข่มขู่ค่าที่ส่งไปexpectยังบูลีน โปรดทราบว่าตรงกันข้ามกับสิ่งที่เป็นคำตอบที่ได้รับการยอมรับในปัจจุบันหมายถึง , == trueคือไม่ได้มีการทดสอบที่ถูกต้องสำหรับ truthiness คุณจะได้รับสิ่งที่ตลกเช่น
> "hello" == true
false
> "" == true
false
> [] == true
false
> [1, 2, 3] == true
false
ในขณะที่ใช้!!ผลผลิต:
> !!"hello"
true
> !!""
false
> !![1, 2, 3]
true
> !![]
true
(ใช่ว่างเปล่าหรือไม่อาเรย์เป็นความจริง)
toBeTrue ()
expect().toBeTrue()เป็นส่วนหนึ่งของจัสมิน - แมทเทอร์ส (ซึ่งลงทะเบียนในเวลา 23.00 น. jasmine-expectหลังจากที่ลงทะเบียนjasmine-matchersครั้งแรกในภายหลัง)
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)เป็นจริงในขณะที่เป็นจริง