🧪Testing With Jest

Jest is a delightful JavaScript Testing Framework with a focus on simplicity.

Why Write Test

ทำไมถึงต้องเขียนเทส ? เพราะการ Test ก่อนจะเริ่ม Code เป็นการช่วยลดความเสี่ยงในการผิดพลาดที่จะตามมา และยังเป็นการตอบรับความคาดหวังอีกด้วย

Unit Test คืออะไร

Jest เป็น JavaScript Framework สำหรับเอาไว้เขียน Test ซึ่งมี function ต่างๆ ให้เราใช้ ทำให้ง่ายต่อการเขียน Test มากๆ สามารถเขียนเทสได้ทั้ง React, Vue, Angular หรือ JavaScript ทั่วๆไป

circle-info

ตามนิยามของ Unit Test คือ วิธีการทดสอบ Software ที่ใช้ทดสอบส่วนที่เล็กที่สุดของ Code เพื่อแสดงให้เห็นว่ามันควรจะทำงานได้อย่างที่ควรจะเป็น

หลักการเขียน Unit Testing คือ

  1. เทสต์เคสที่เขียนต้องไม่ต่อกับ Database จริง

  2. เทสต์เคสที่เขียนต้องไม่เรียกใช้ Service ภายนอก

หัวใจสำคัญของการเขียน Test

Red -> Green -> Refactor

Red = เขียนเพื่อให้ Fail โดยเริ่มจากการเขียน test ก่อน เพื่อพิสูจน์ให้มัน fail ตาม test ที่เราคิดไว้ว่ามันต้อง fail ซึ่งการเขียน test เราไม่จำเป็นที่จะต้องดักในทุกกรณี เพียงแต่เราเขียนให้มันพอเพียง และเพียงพอกับชิ้นงานในแต่ละชิ้นของเราก็พอ

Green = เขียน production code ซึ่งจะต้องทำให้ส่วนที่เราเขียน test ไว้ผ่านทั้งหมด โดยที่เราไม่จำเป็นที่จะต้องเขียน code ให้มันสวยหรูหรือดีเด่อะไรมากมาย ขอแค่ให้ test มันผ่านเท่านั้นก่อน

Refactor = Refactor แก้ไข ให้ดีขึ้น นำเอาโค้ดมาทำการจัดเรียงใหม่ ลดความซ้ำซ้อนลง หรือปรับ performance

หลักการ 3A ในการเขียน test

เป็น pattern ที่ช่วยให้การแบ่งโค้ดของ unit test ออกเป็นสามส่วนหลักให้สามารถเข้าใจได้ง่าย

circle-check

Arrange

circle-check

Action

circle-check

Assert

circle-info

Tip การเขียน unit test เบื้องต้น

1.Expect ผลลัพธ์สุดท้าย

2.เทคนิคถ้าไม่รู้จะเขียนเทสยังไง ให้เขียน expected result ไว้ก่อน

3.ถ้าโปรเจคระยะยาวมากกว่า 3 เดือน ควรเขียนเทส

Last updated