หลังจากที่ดู 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 ขึ้นมา
ที่สำคัญจะมีส่วนของ Web UI มาให้ใช้งานด้วย
ใช้งานร่วมกับ Firebase CLI version 8.4.0 ขึ้นไปเท่านั้น ความสามารถประกอบไปด้วย
- จัดการข้อมูลของ Firestore และ Realtime database ได้เลย
- มี Log การทำงานให้
ทำการ start จะมี UI ดังนี้
เรื่องที่สองคือ การเขียน test case เพื่อทดสอบการทำงาน
เช่นการเขียน test เพื่อทดสอบ security rule
ยกตัวอย่างเช่น
security rule อนุญาตให้อ่านและเขียนข้อมูลใน Firestore
ได้เฉพาะ request ที่ผ่านการ authenticate แล้วเท่านั้น
จากนั้นทำการเขียนชุดการทดสอบ
เพื่อตรวจสอบว่า security rule ที่เขียนมานั้น
ทำงานได้อย่างถูกต้องตามที่คาดหวังหรือไม่
ที่สำคัญสามารถเลือกไฟล์ security rule ได้อีกด้วย ดังนี้
ทำการ run test ได้ผลดังนี้
[gist id="79abb0048af1beb38f983df926aec68e" file="3.txt"]เพียงเท่านี้ก็ทำให้ชีวิตของนักพัฒนาบนระบบ Firebase
มีความสะดวกสบายมากยิ่งขึ้น
และน่าจะช่วยลดความผิดพลาดของการพัฒนาลงไปได้เยอะ