บทความนี้สรุปการใช้งาน expect matcher ที่มีให้ใช้ใน jest โดยเราสามารถเข้าไปดูเพิ่มเติมได้ที่ https://jestjs.io/docs/expect
Truthiness
ถ้าเรามีการตรวจสอบค่าว่าเป็น undefined
, null
หรือ false
ใน jest มี helpers ที่ช่วยให้เราตรวจสอบค่าต่างๆ เหล่านี้ได้
toBeNull
เป็นnull
เท่านั้นtoBeUndefined
เป็นundefined
เท่านั้นtoBeDefined
เป็นสิ่งที่ตรงกันข้ามกับtoBeUndefinition
toBeTruthy
จับคู่ทุกสิ่งที่คำสั่งif
ถือว่าเป็นจริงtoBeFalsy
จับคู่อะไรก็ตามที่คำสั่งif
ถือว่าเป็นเท็จ
ถ้าเราใช้ .not
ไว้ข้างหน้าเท่ากับตรงกันข้าม
Numbers
วิธีเปรียบเทียบตัวเลขส่วนใหญ่จะมีค่าที่เทียบเท่ากัน
ในกรณีที่อยากเปรียบเทียบค่า floating point ให้ใช้ useBeCloseTo
แทนการใช้ toEqual
หรือ toBe
เพื่อไม่ให้เกิดข้อผิดพลาดในการปัดเศษเล็กๆ น้อยๆ
Strings
คุณสามารถตรวจสอบสตริงกับนิพจน์ทั่วไป ด้วย toMatch
:
Arrays and iterables
เราสามารถตรวจสอบว่า array หรือ iterable (วนซ้ำ) ว่ามีข้อมูลที่ต้องการตรวจสอบมีหรือไม่ ให้ใช้ toContain
:
Exceptions
หากเราต้องการทดสอบว่าฟังก์ชันใดฟังก์ชันหนึ่งเกิดข้อผิดพลาด เมื่อมีการเรียกใช้หรือไม่ ให้ใช้ toThrow
:
function compileAndroidCode() {
throw new Error('you are using the wrong JDK!')
}
test('compiling android goes as expected', () => {
expect(() => compileAndroidCode()).toThrow()
expect(() => compileAndroidCode()).toThrow(Error)
// ตรวจสอบข้อความที่ต้องการอยู่ในประโยคหรือไหม หรือจะใช้ regexp ก็ได้
expect(() => compileAndroidCode()).toThrow('you are using the wrong JDK')
expect(() => compileAndroidCode()).toThrow(/JDK/)
// หรือจับคู่ข้อความที่แสดงแบบตรงตัวโดยใช้ regexp
expect(() => compileAndroidCode()).toThrow(/^you are using the wrong JDK$/) // Test fails
expect(() => compileAndroidCode()).toThrow(/^you are using the wrong JDK!$/) // Test pass
})
การใช้งานเบื้องต้นจะประมาณนี้ เราสามารถเข้าไปดูวิธีการใช้เพิ่มเติมได้ที่: https://jestjs.io/docs/expect