본문으로 건너뛰기

เนื้อหาภาษาไทย / 태국어 콘텐츠

시스템 가이드 검수 완료된 콘텐츠

เริ่มต้นกับ Unit Testing: ทำความรู้จัก PHPUnit

บทความนี้เป็นการแนะนำ Unit Testing ด้วย PHPUnit ซึ่งเป็น Framework ยอดนิยมสำหรับภาษา PHP โดยอธิบายว่า PHPUnit คืออะไร, ทำไม Unit Testing ถึงสำคัญ (ช่วยตรวจจับข้...

เริ่มต้นกับ Unit Testing: ทำความรู้จัก PHPUnit

ในโลกของการพัฒนาซอฟต์แวร์ การทดสอบ (Testing) เป็นขั้นตอนที่สำคัญอย่างยิ่ง เพื่อให้มั่นใจว่าโค้ดที่เราเขียนทำงานได้อย่างถูกต้องตามที่คาดหวัง บทเรียนนี้จะพาคุณเข้าสู่โลกของการทดสอบแบบ Unit Testing โดยใช้เครื่องมือที่ชื่อว่า PHPUnit ซึ่งเป็นเครื่องมือยอดนิยมสำหรับภาษา PHP

PHPUnit คืออะไร?

PHPUnit คือ Framework สำหรับการทำ Unit Testing ในภาษา PHP พูดง่ายๆ ก็คือ มันเป็นชุดเครื่องมือและฟังก์ชันที่ช่วยให้เราเขียนและรันการทดสอบโค้ดของเราได้ง่ายขึ้น มันช่วยให้เราตรวจสอบได้ว่าแต่ละส่วนของโค้ด (Unit) ทำงานได้อย่างถูกต้องหรือไม่

Unit ในที่นี้หมายถึง ส่วนที่เล็กที่สุดของโปรแกรมที่เราสามารถทดสอบได้ เช่น ฟังก์ชัน หรือ Method ใน Class

ความสำคัญของการทำ Unit Testing

ทำไมเราต้องเสียเวลาเขียน Unit Test? นี่คือเหตุผลสำคัญ:

  • ตรวจจับข้อผิดพลาดตั้งแต่เนิ่นๆ: การทดสอบ Unit Test ช่วยให้เราพบข้อผิดพลาด (Bug) ได้ตั้งแต่ขั้นตอนการพัฒนา ทำให้แก้ไขได้ง่ายและรวดเร็วกว่าการรอให้ผู้ใช้งานพบเจอ
  • มั่นใจในการเปลี่ยนแปลงโค้ด: เมื่อเราทำการเปลี่ยนแปลงโค้ด การมี Unit Test จะช่วยให้เรามั่นใจได้ว่าการเปลี่ยนแปลงนั้นจะไม่ส่งผลกระทบต่อส่วนอื่นๆ ของโปรแกรม
  • โค้ดที่อ่านง่ายและเข้าใจง่าย: การเขียน Unit Test บังคับให้เราต้องออกแบบโค้ดให้สามารถทดสอบได้ ซึ่งโดยทั่วไปแล้วจะนำไปสู่โค้ดที่มีโครงสร้างที่ดีขึ้น อ่านง่าย และเข้าใจง่าย
  • ลดค่าใช้จ่ายในการบำรุงรักษา: การมี Unit Test ที่ครอบคลุมจะช่วยลดความเสี่ยงในการเกิดข้อผิดพลาด ทำให้การบำรุงรักษาโปรแกรมในระยะยาวเป็นไปได้ง่ายขึ้นและประหยัดค่าใช้จ่าย
  • ช่วยในการ Refactoring: เมื่อเราต้องการปรับปรุงโค้ด (Refactoring) Unit Test จะเป็นตัวช่วยยืนยันว่าการปรับปรุงนั้นไม่ทำให้ฟังก์ชันการทำงานเดิมเสียหาย

ลองนึกภาพว่าคุณกำลังสร้างบ้าน ถ้าคุณไม่ตรวจสอบโครงสร้างแต่ละส่วนก่อนที่จะสร้างส่วนอื่นๆ ต่อไป บ้านทั้งหลังอาจถล่มลงมาได้ การทำ Unit Testing ก็เหมือนกับการตรวจสอบโครงสร้างแต่ละส่วนของโปรแกรมก่อนที่จะสร้างส่วนอื่นๆ ต่อไป

ตัวอย่างง่ายๆ: ฟังก์ชันบวกเลข

สมมติว่าเรามีฟังก์ชันง่ายๆ ที่ใช้สำหรับบวกเลขสองจำนวน:

<?php

function add(int $a, int $b): int
{
    return $a + $b;
}

เราจะเขียน Unit Test เพื่อตรวจสอบว่าฟังก์ชันนี้ทำงานได้อย่างถูกต้องได้อย่างไร? PHPUnit จะช่วยเราในเรื่องนี้

การติดตั้ง PHPUnit

ก่อนที่เราจะเริ่มเขียน Unit Test เราต้องติดตั้ง PHPUnit ก่อน วิธีที่ง่ายที่สุดในการติดตั้ง PHPUnit คือการใช้ Composer ซึ่งเป็นเครื่องมือจัดการ Dependencies สำหรับ PHP

  1. ตรวจสอบว่าคุณมี PHP และ Composer ติดตั้งแล้ว: ตรวจสอบโดยการรันคำสั่ง php -v และ composer -v ใน Command Line หรือ Terminal ถ้ายังไม่มี ให้ทำการติดตั้งก่อน
  2. สร้าง Project Directory: สร้าง Folder สำหรับเก็บ Project ของเรา เช่น "my-project"
  3. สร้าง `composer.json`: ใน Folder "my-project" ให้สร้างไฟล์ชื่อ `composer.json` และใส่ Code ด้านล่างนี้:
    {
        "require-dev": {
            "phpunit/phpunit": "^9.0"
        }
    }
    

    Code นี้บอก Composer ว่าเราต้องการติดตั้ง PHPUnit เวอร์ชั่น 9 หรือสูงกว่า (^9.0) ในส่วน Development (require-dev)

  4. ติดตั้ง PHPUnit: เปิด Command Line หรือ Terminal และ Navigate ไปยัง Folder "my-project" จากนั้นรันคำสั่ง:
    composer install
    

    Composer จะดาวน์โหลดและติดตั้ง PHPUnit พร้อมทั้ง Dependencies ที่จำเป็นทั้งหมด

  5. ตรวจสอบการติดตั้ง: หลังจากติดตั้งเสร็จสิ้น คุณสามารถตรวจสอบได้ว่า PHPUnit ถูกติดตั้งอย่างถูกต้องหรือไม่ โดยการรันคำสั่ง:
    ./vendor/bin/phpunit --version
    

    ถ้าทุกอย่างเป็นไปด้วยดี คุณจะเห็น Version ของ PHPUnit ที่ติดตั้งไว้

เมื่อคุณติดตั้ง PHPUnit เรียบร้อยแล้ว คุณก็พร้อมที่จะเริ่มต้นเขียน Unit Test แรกของคุณได้เลย ในบทเรียนถัดไป เราจะมาสร้าง Test Case แรกและทดสอบฟังก์ชัน `add()` ที่เราได้ยกตัวอย่างไป

สรุป

ในบทเรียนนี้ เราได้ทำความรู้จักกับ PHPUnit ซึ่งเป็นเครื่องมือสำคัญสำหรับการทำ Unit Testing ในภาษา PHP เราได้เรียนรู้ว่า Unit Testing มีความสำคัญอย่างไร และวิธีการติดตั้ง PHPUnit ด้วย Composer ในบทเรียนถัดไป เราจะลงมือเขียน Test Case จริงๆ เพื่อทดสอบโค้ดของเรา

Office.in.th Custom Service

이 구조를 바탕으로 시스템을 개발하거나 맞춤 변경하고 싶으신가요?

Office.in.th는 엔터프라이즈 웹 애플리케이션, API 연동, 공공/민간 업무 관리 시스템을 설계·개발하며 장기 지원을 제공합니다.

소프트웨어 개발 서비스 보기