Dev to webs {Coding…}

ร บทเรียนฟรีด้านการพัฒนาซอฟต์แวร์ ที่ครอบคลุมเนื้อหาหลากหลาย ตั้งแต่การเขียนโค้ดพื้นฐานไปจนถึงเทคนิคขั้นสูง

บทที่ 9: การเขียน Unit Test ใน Flutter

🔖 หมวดบทเรียน: การเขียนโค้ดทดสอบอัตโนมัติในแอป Flutter

📌 เหมาะสำหรับ: นักพัฒนาที่ต้องการเพิ่มความน่าเชื่อถือและลดข้อผิดพลาดในแอป

🎯 เป้าหมาย: เข้าใจวิธีเขียน Unit Test เพื่อทดสอบ logic และ function ต่าง ๆ ใน Dart/Flutter

🧭 เกริ่นนำ

การเขียน Unit Test ช่วยให้เราตรวจสอบว่า function ที่เขียนทำงานได้ถูกต้องเมื่อได้รับ input ที่หลากหลาย ลดข้อผิดพลาดระยะยาว และเหมาะมากกับการทำงานเป็นทีม การทดสอบจะเขียนแยกต่างหากจาก UI โดยใช้ test package ของ Dart

🧪 ติดตั้ง test package (ถ้ายังไม่มี)

dev_dependencies:
  test: ^1.25.2

🧪 ตัวอย่างการเขียน Unit Test เบื้องต้น

สร้างไฟล์ math_utils.dart

int add(int a, int b) => a + b;
int subtract(int a, int b) => a - b;

สร้างไฟล์ math_utils_test.dart

import 'package:test/test.dart';
import 'math_utils.dart';

void main() {
  group('MathUtils', () {
    test('การบวกเลข', () {
      expect(add(2, 3), equals(5));
    });

    test('การลบเลข', () {
      expect(subtract(5, 3), equals(2));
    });
  });
}

▶️ รันการทดสอบ

ใช้คำสั่งใน terminal:

dart test

หากผลลัพธ์ขึ้นว่า All tests passed! แสดงว่าฟังก์ชันทำงานถูกต้อง

✅ เทคนิคเพิ่มเติม

  • ควรแบ่งไฟล์ test ตาม module เช่น auth_test.dart, product_test.dart
  • ใช้ setUp() และ tearDown() หากต้องเตรียมข้อมูลก่อน/หลังการทดสอบ
  • เขียน test ครอบคลุมทุก case ทั้งปกติและผิดพลาด

✅ สรุป

  • Unit Test ช่วยให้โค้ดมีคุณภาพ ป้องกัน regression และมั่นใจในการ deploy
  • ใช้ package test เพื่อรันโค้ด Dart โดยไม่ต้องใช้ UI
  • เป็นขั้นตอนพื้นฐานของ TDD (Test Driven Development)

ในบทถัดไปเราจะไปต่อที่ การเขียน Widget Test ซึ่งทดสอบการทำงานของ UI และ interaction ต่าง ๆ