Unit Test trong PHP – Công cụ tuyệt vời
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:
- Khi đặt tên file phải kèm theo từ Test đằng sau. Ví dụ: wordcountTest.php
- Tên hàm phải có test ở đầu. Ví dụ: testCountWord
- 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.