Anuchit Chalothorn

Human Knowledge Belongs to The World

Unit Test สำคัญแค่ไหน?


03 Mar 2025, 21:35

Unit Test เป็นหัวใจสำคัญของการพัฒนาซอฟต์แวร์ที่มีคุณภาพ โดยเฉพาะใน Flutter ซึ่งเป็นเฟรมเวิร์กยอดนิยมสำหรับการพัฒนาแอปพลิเคชันแบบ Cross-platform การเขียน Unit Test ช่วยให้มั่นใจว่าโค้ดทำงานได้อย่างถูกต้อง ลดโอกาสเกิดบั๊ก และทำให้การพัฒนาแอปมีความยืดหยุ่นมากขึ้น

ทำไม Unit Test จึงสำคัญ?

  1. ตรวจสอบความถูกต้องของโค้ด - ป้องกันการทำงานผิดพลาดของฟังก์ชันหลัก
  2. ลดความผิดพลาดเมื่อต้องเปลี่ยนแปลงโค้ด - ทำให้การ refactor โค้ดเป็นไปอย่างมั่นใจ
  3. เพิ่มความน่าเชื่อถือของแอปพลิเคชัน - ลดบั๊กก่อนที่โค้ดจะถูกนำไปใช้งานจริง
  4. รองรับการทำงานร่วมกับ CI/CD - ช่วยให้สามารถตรวจสอบโค้ดอัตโนมัติก่อนนำขึ้น production

ตัวอย่างการเขียน Unit Test ใน Flutter

ติดตั้งแพ็กเกจ flutter_test

Flutter มีแพ็กเกจ flutter_test มาให้พร้อมใช้งานอยู่แล้ว หากต้องการใช้งาน ให้ตรวจสอบว่า pubspec.yaml มีการอ้างอิงแพ็กเกจดังนี้

# pubspec.yaml
        dev_dependencies:
          flutter_test:
            sdk: flutter
        

สร้างฟังก์ชันที่ต้องการทดสอบ

สมมติว่าเรามีคลาส Calculator ที่มีเมทอด add และ subtract

class Calculator {
          int add(int a, int b) => a + b;
          
          int subtract(int a, int b) => a - b;
        }
        

สร้างไฟล์ Unit Test

สร้างไฟล์ใหม่ในโฟลเดอร์ test/ เช่น calculator_test.dart

import 'package:flutter_test/flutter_test.dart';
        import 'package:my_app/calculator.dart'; // นำเข้าไฟล์ที่ต้องการทดสอบ
        
        void main() {
          group('Calculator', () {
            final calculator = Calculator();
        
            test('should return correct addition result', () {
              expect(calculator.add(2, 3), 5);
              expect(calculator.add(-1, 1), 0);
            });
        
            test('should return correct subtraction result', () {
              expect(calculator.subtract(5, 3), 2);
              expect(calculator.subtract(10, 7), 3);
            });
          });
        }
        

รัน Unit Test

ใช้คำสั่งต่อไปนี้ใน Terminal เพื่อรัน Unit Test

flutter test
        

หากโค้ดทำงานถูกต้อง คุณจะเห็นผลลัพธ์ที่แจ้งว่าการทดสอบทั้งหมดผ่านเรียบร้อย

สรุป

Unit Test มีความสำคัญอย่างยิ่งต่อการพัฒนาแอปพลิเคชันด้วย Flutter เพราะช่วยให้โค้ดมีคุณภาพ ลดโอกาสเกิดบั๊ก และเพิ่มความมั่นใจในการพัฒนาแอป นักพัฒนาควรฝึกเขียน Unit Test อย่างสม่ำเสมอ เพื่อให้แอปพลิเคชันมีความเสถียร พร้อมสำหรับการใช้งานจริง และรองรับการเปลี่ยนแปลงในอนาคต