จากกลุ่ม Golang Thailand มีคำถามเกี่ยวกับการทดสอบ
ระบบงานที่พัฒนาด้วยภาษา Go
โดยในคำถาม จากที่เข้าใจเป็นดังนี้
- ระบบงานพัฒนาด้วย Gin web framework
- ทำการ post data ด้วย Form data
- ต้องการทดสอบผ่าน Test mode ของ Gin + HttpTest
แต่จาก code ตัวอย่างที่ทางผู้ post ได้ใส่ link มา
ซึ่ง code นั้นจะ run ไม่ได้
จึงลองเอามาลองเขียน code เพิ่มเติมนิดหน่อย
เพื่อให้ compile และ run ได้
ผลที่ได้คือ
- ทางผู้เขียนน่าจะเข้าใจผิด เพราะว่า code ที่พัฒนานั้น เป็นการรับค่าจากการ POST ผ่านการ submit form
- ส่วนในการ testing นั้น ทำการ POST ด้วย JSON body
- ทำให้การทดสอบไม่ผ่าน
การทดลองขั้นพื้นฐาน ก็ทำแบบ integration test ผ่าน API testing ด้วย Postman
เพื่อทำให้เข้าใจก่อนว่า code จริง ๆ ทำงานอย่างไรกันแน่ !!
แสดงดังรูป
จากนั้นจึงลงมือเขียนการทดสอบใน test mode ของ gin
ร่วมกับการทดสอบด้วย package net/http/httptest
ซึ่งแก้ไขนิดเดียว คือ ข้อมูลที่ส่งไปนั่นเอง
โดยเปลี่ยนเป็น key=value ที่ submit form นั่นเอง
ดังนี้
เพียงเท่านี้ก็ได้แล้ว
ส่วนการส่ง JSON ก็ดูเพิ่มเติมได้ใน GitHub::Up1 ได้
น่าจะพอมีประโยชน์นะครับ