ฉันจะทำอย่างไรเมื่อฉันสงสัยว่าคำถามที่ถามที่นี่คือไปที่แหล่งที่มา
เป็น()
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)
เป็นจริงในขณะที่เป็นจริง