
ปกติในการทำ API testing ด้วย JavaScript และ NodeJS นั้น
มักจะใช้งาน library ต่าง ๆ เช่น Jest และ SuperTest
รวมไปถึง library/framework อื่น ๆ เช่น cypress และ playwright
แต่ก็มีอีกตังที่น่าสนใจคือ Vitest
ที่เพิ่งปล่อย version 1 ออกมาเมื่อเดือนที่ผ่านมา
ซึ่งเบื้องหลังการทำงานคือ Vite ที่เร็วมาก ๆ
ดังนั้นมาลองใช้งานเล่น ๆ กันดู
สิ่งที่น่าสนใจสำหรับ Vitest ประกอบไปด้วย
- ทำงานเร็วมาก รวมทั้งใช้ memory น้อยกว่าตัวอื่น ๆ เช่น Jest เป็นต้น
- ใช้ config เดียวกับ Vite
- สนับสนุน JavaScript, TypeScript และ ESM รวมทั้ง JSX ด้วย
- สนับสนุน Jest
- มี watch mode น่าจะเป็น default ไปแล้ว
- เริ่มต้นใช้งานแบบ zero configuration
- สำหรับการ assrtion จะมี Chai มาให้เลย รวมทั้งมี assertType ให้อีกด้วย
- ส่วนการ run test นั้นจะทำงานแบบ parallel มาให้เลย แต่ก็สามารถปิดการใช้งานได้
- มี benchmark ให้เลย ชิวมาก
- มี Vitest UI สำหรับแสดงผล report การทดสอบแบบสวย ๆ
- ทดสอบได้ทั้ง UI test, API test และ Snapshot test
- มี Mocking มาให้ใช้
- มี in source testing คือเขียน test case ใน production code ได้เลย ตรงนี้ไม่ค่อยชอบเท่าไร
มาลองใช้งานกันดู
เริ่มด้วยการเขียน test และ run แบบปกติ (watch mode)
สำหรับไฟล์ package.json เป็นดังนี้
- Test with watch mode
- Test แล้วจบ พร้อม coverage
- UI mode
ทำการแสดงผลการทดสอบแบบ html สวย ๆ ใน UI mode

มาลองทำ API testing ด้วย Vitest กันดีกว่า
ลองใช้งาน API จาก JsonPlaceHolder
โดยสิ่งที่ต้องการทดสอบประกอบไปด้วย
- Response status code
- Response content type
- Body response ต้องเป็น object
- JSON ของ response ต้องมี schema ตามที่ต้องการ
สามารถเขียนง่าย ๆ ได้ดังนี้
ผลการทดสอบเป็นดังนี้

ใช้งานง่ายดี เร็วด้วย สวยด้วย
ต้องใช้งานกันแล้ว
สนุกกับการ coding ครับ