Quantcast
Channel: cc :: somkiat
Viewing all articles
Browse latest Browse all 1997

เขียน Unit test สำหรับทดสอบ Firebase

$
0
0

หลังจากที่ดู Firebase Live เรื่อง Unit testing security rules with the new Firebase emulator suite    
พบว่ามีกลายอย่างที่น่าสนใจมาก
ทั้ง Firebase emulator suite ที่เราสามารถใช้จำลอง Firebase ได้เลย
และสามารถเขียน test case สำหรับทดสอบการทำงานกับ Firebase emulator ได้อีก
ผ่าน library @firbase/testing ประกอบไปด้วย

  • การทดสอบ security rule ว่าทำงานถูกต้องตามที่เรากำหนดหรือไม่
  • การทดสอบการทำงานของระบบที่ทำงานร่วมกับ Realtime Database และ Firestore เป็นต้น

เรามาเรียนรู้ทีละตัวกันดีกว่า

เรื่องแรกคือ  Firebase emulator suite

เป็นการจำลอง environment ของ Firebase ขึ้นมาเลย
ทั้ง Realtime database, Firestore และ Remote config เป็นต้น

การทำงานคร่าว ๆ เป็นดังรูป

สามารถทำการ start ผ่าน Firebase CLI ได้เลย
เช่นทำการ start Firestore ขึ้นมา

[gist id="79abb0048af1beb38f983df926aec68e" file="1.txt"]

ที่สำคัญจะมีส่วนของ Web UI มาให้ใช้งานด้วย

ใช้งานร่วมกับ Firebase CLI version 8.4.0 ขึ้นไปเท่านั้น ความสามารถประกอบไปด้วย

  • จัดการข้อมูลของ Firestore และ Realtime database ได้เลย
  • มี Log การทำงานให้

ทำการ start จะมี UI ดังนี้

เรื่องที่สองคือ การเขียน test case เพื่อทดสอบการทำงาน

เช่นการเขียน test เพื่อทดสอบ security rule
ยกตัวอย่างเช่น
security rule อนุญาตให้อ่านและเขียนข้อมูลใน Firestore 
ได้เฉพาะ request ที่ผ่านการ authenticate แล้วเท่านั้น

[gist id="79abb0048af1beb38f983df926aec68e" file="firebase.rules"]

จากนั้นทำการเขียนชุดการทดสอบ

เพื่อตรวจสอบว่า security rule ที่เขียนมานั้น
ทำงานได้อย่างถูกต้องตามที่คาดหวังหรือไม่
ที่สำคัญสามารถเลือกไฟล์ security rule ได้อีกด้วย ดังนี้

[gist id="79abb0048af1beb38f983df926aec68e" file="test.js"]

ทำการ run test ได้ผลดังนี้

[gist id="79abb0048af1beb38f983df926aec68e" file="3.txt"]

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


Viewing all articles
Browse latest Browse all 1997

Trending Articles