คำถามที่ได้รับมาคือ
ในการพัฒนาและทดสอบ mobile app นั้น
จำเป็นจะต้องทำการจัดการข้อมูลผ่านระบบ network (HTTP protocol)
ทั้งการอ่านและเขียนข้อมูล
รวมทั้งการจำลองสถานการณ์ต่าง ๆ ของ network เช่น
- network ที่ช้า
- กำหนดเรื่องของความเร็วได้เช่น 2G, 3G, 4G และ 5G เป็นต้น
- กำหนดผลการทำงานได้เลย ทั้ง success และ fail
สามารถทำอย่างไรได้บ้าง ?
คำตอบและคำแนะนำเป็นดังนี้
- สำหรับ Android จะกำหนดใน Emulator ได้เลย เข้าไปในส่วนของ seetins มีให้ครบ
- ส่วน iOS นั้นใน xCode จะมี Network Link Conditioner ให้สำหรับ Simulator
- ใช้งานพวก Mock/Fake server แทน แบบ external server เช่น mbtest, wiremock, mockserver, smocker และ stubby เป็นต้น
- ใช้งาน software แบบ middleman ระดับ network แทนเช่น Charles หรือ ProxyMan เป็นต้น
- ใช้งาน library/dependency ของภาษานั้น ๆ ไปเลย เช่น Android ก็มีพวก WebMockServer, Flaker เป็นต้น ส่วนใน iOS ก็มี MockWebServer และ Shock เป็นต้น
- หรือจะเขียน test double เองทั้ง stub/spy/mock เองก็ได้ แต่โครงสร้างของ code ใน project ต้อง testable มากหน่อย
Reference Websites