คำถามที่ได้รับมาคือ
ในการพัฒนาและทดสอบ 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 มากหน่อย
  • หรือใน App ให้เพิ่มหน้าสำหรับ setting ของการใช้งานหรือทดสอบก่อน ว่าจะเลือกใช้ environment อะไร
  • หรือจะต่อตรงไปยังระบบจริง ๆ เลย แต่ต้องการันตีความ stable และสามารถ repeat หรือ ทำซ้ำ ๆ ได้นั่นเอง

Reference Websites