Viết Test Cho PHPUnit

Cách Viết Test Sử Dụng PHPUnit

Để viết test sử dụng PHPUnit chúng ta cần tuân theo các bước sau:

  • Khi viết test để kiểm tra lớp với tên là Example thì tên lớp test sẽ là TestExample.
  • Lớp TestExample sẽ thừa kế từ lớp PHPUnit\Framework\TestCase có trong PHPUnit.
  • Tên của các phương thức trong lớp TestExample dùng để chạy test sẽ được bắt đầu bởi tiếp vị ngữ là test. Ví dụ testReturnsNumber(), testEqualsZero()...
  • Sử dụng các phương thức có sẵn trong lớp PHPUnit\Framework\TestCase như assertEquals(), assertNotEquals(), assertEmpty()... để kiểm tra các giá trị bằng nhau, không bằng nhau, mảng là rỗng...

Ví Dụ

Bâ giờ chúng ta sẽ viết một test cho lớp MyArray.

Đầu tiên chúng ta cần khai báo lớp này với tên lớp là FirstTest và lớp FirstTest sẽ thừa kế từ lớp TestCase trong PHPUnit:

<?php
use PHPUnit\Framework\TestCase;

class FirstTest extends TestCase {
...
}
?>

Tiếp theo trong lớp FirstTest chúng ta sẽ thêm một phương thức đầu tiên dùng để kiểm tra tính đúng của giá trị và phương thức này cần phải được bắt đầu bằng test:

<?php
use PHPUnit\Framework\TestCase;

class FirstTest extends TestCase
{
    public function testTrueValue()
    {
    }
}
?>

Tiếp theo chúng ta sẽ thêm một đánh giá đầu tiên vào bên trong phương thức testTrueValue().

...
class FirstTest extends TestCase
{
    public function testTrueValue()
    {
        $this->assertTrue(FALSE);
    }
}

Bây giờ chúng ta hay cùng chạy test ở trên sử dụng phpunit như sau:

$ phpunit -v first_test.php

Tuỳ chọn -v (hay --verbose) dùng để hiển thị các thông tin trả về từ PHPUnit trong quá trình chạy test. Đoạn mã trên sẽ trả về kết quả như sau:

PHPUnit 5.5.4 by Sebastian Bergmann and contributors.

F                                                                   1 / 1 (100%)

Time: 87 ms, Memory: 12.25MB

There was 1 failure:

1) FirstTest::testTrueValue
Failed asserting that false is true.

/home/sokool20/tmp/first_test.php:11

FAILURES!
Tests: 1, Assertions: 1, Failures: 1.

Điều này có nghĩa là PHPUnit đã chạy một đơn vị test trong đó có một xác nhận (hay assertion) và số lần không thành công (hay failure) là 1.

Bạn có thể thêm nhiều đơn vị test nữa trong lớp FirstTest nếu muốn.

PHPUnit


Câu Hỏi


Chưa có câu hỏi nào cho bài hướng dẫn này
Đặt Câu Hỏi

Mời Bạn Bè

Gửi email mời bạn bè

Viết Cùng Tác Giả

Bạn biết về chủ đề này và muốn tham gia viết cùng tác giả?