メインコンテンツへ移動

เนื้อหาภาษาไทย / タイ語のコンテンツ

システムガイド 内容確認済み

เริ่มต้นกับ 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 は、エンタープライズ Web アプリケーション、API 連携、官民の業務管理システムの設計・開発を承り、長期的なサポートも提供します。

ソフトウェア開発サービスを見る