Thumbnail
Category: PHP

Unit Test trong PHP - Công cụ tuyệt vời

Date: February 8, 2020
79 views

Unit Test là gì?

Unit Test là một công cụ của PHP giúp chúng ta có thể kiểm tra được như các hàm (Function), thủ tục (Procedure), lớp (Class), hoặc các phương thức (Method). Việc kiểm tra này được thực hiện bằng các mã lệnh. Unit Test là cách test khoa học hơn, tính toán, dự phòng và có khả năng lưu kết quả test sau này, có thể giúp các bạn sinh viên làm bằng chứng đã test phần mềm cho các giảng viên un hihi.

Cài đặt và cấu hình Unit Test

Cài đặt thông qua composer là cách đơn giản nhất, bạn sử dụng lệnh: composer require phpunit/phpunit

Khi bạn cài xong thì nháy chuột phải đồng thời giữ phím shift tại thư mục gốc và chọn open command windows here hoặc open powershell here. Sau đó gõ ./vendor/bin/phpunit nếu sẽ được như hình dưới đây là thành công nha!

Sau đó bạn được 1 thư mục vendor, 1 file composer.json và 1 file composer.lock. Việc tiếp theo là bạn tạo hai thư mục: src và test. Thư mục src sẽ có namespace là App, còn test sẽ có namespace là Tests. Cấu hình 2 namespace trên và đường dẫn chạy file test vào file phpunit.xml cùng cấp với thư mục vendor.


<?xml version="1.0" encoding="UTF-8"?>
<phpunit colors="true">
    <testsuites>
        <testsuite name="Application Test Suite">
            <directory>./test/</directory>
        </testsuite>
    </testsuites>
</phpunit>

Thực thi Unit Test

Ví dụ test bên dưới là đếm xem chuỗi “Do Trong Hao” có trả về 3 kí tự không.


file src.wordcount.php
<?php
namespace App;
​
class WordCount
{
    public function wordcount($sentence)
    {
        return count(split(' ', $sentence));
    }
}
?>


file test.wordcountTest.php
<?php
namespace Tests;
​
use PHPUnit\Framework\TestCase;
use App\WordCount;
class wordcountTests extends TestCase
{
    /** @test */
    public function testCountWord()
    {
        $wc = new WordCount();
        $text = "Do Trong Hao";
        $wordCount = $wc->wordcount($text);
        $this->assertEquals(3, $wordCount);
    }
​
    public function testCountWordHaveSpace()
    {
        $wc = new WordCount();
        $text = "Do Trong Hao ";
        $wordCount = $wc->wordcount($text);
        $this->assertEquals(3, $wordCount);
    }
}
?>

Để chạy thì nháy chuột phải đồng thời giữ phím shift tại thư mục gốc và chọn open command windows here hoặc open powershell here. Sau đó gõ ./vendor/bin/phpunit

Như vậy là xong rồi. Code ở trên chạy sẽ lỗi ở test thứ hai do mong đợi là 3 từ nhưng hàm trả về 4 từ. Nếu test đúng hết bạn sẽ có thấy được từ OK nha!.

Lưu ý khi sử dụng PHPUnit:

  1. Khi đặt tên file phải kèm theo từ Test đằng sau. Ví dụ: wordcountTest.php
  2. Tên hàm phải có test ở đầu. Ví dụ: testCountWord
  3. Nên đặt tên lớp trùng tên file.

Các bạn có thể tham khảo thêm tại đây.


Copyright © 2025 All Right Reserved