🧪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 ทั่วๆไป

ตามนิยามของ 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 ออกเป็นสามส่วนหลักให้สามารถเข้าใจได้ง่าย

Arrange

Action

Assert

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

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

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

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

Last updated