Giao diện
Kiểm thử: Bắt đầu (Testing: Getting Started)
Nguồn gốc: Bản dịch từ Testing: Getting Started
Giới thiệu (Introduction)
Laravel được xây dựng với tư duy testing-first. Hỗ trợ testing với Pest và PHPUnit được tích hợp sẵn, file phpunit.xml đã được cấu hình sẵn cho ứng dụng. Framework còn cung cấp helper methods tiện lợi.
Mặc định, thư mục tests chứa 2 thư mục con:
Unit— Test đơn vị nhỏ, cô lập. Không boot ứng dụng Laravel, không truy cập database.Feature— Test phần lớn hơn: nhiều object tương tác, HTTP request đến JSON endpoint... Phần lớn test nên là Feature test.
File ExampleTest.php có sẵn trong cả 2 thư mục. Chạy test:
bash
./vendor/bin/pest
./vendor/bin/phpunit
php artisan testMôi trường (Environment)
Khi chạy test, Laravel tự động set environment thành testing (từ phpunit.xml). Session và cache tự động dùng driver array — không có dữ liệu nào được lưu trữ khi testing.
File .env.testing
Tạo file .env.testing ở root project — sẽ được dùng thay .env khi chạy Pest/PHPUnit hoặc Artisan command với --env=testing.
Tạo Tests (Creating Tests)
Tạo Feature test:
bash
php artisan make:test UserTestTạo Unit test:
bash
php artisan make:test UserTest --unitVí dụ test cơ bản:
php
<?php
test('basic', function () {
expect(true)->toBeTrue();
});php
<?php
namespace Tests\Unit;
use PHPUnit\Framework\TestCase;
class ExampleTest extends TestCase
{
public function test_basic_test(): void
{
$this->assertTrue(true);
}
}GỢI Ý
Nếu tự định nghĩa setUp/tearDown, nhớ gọi parent::setUp() ở đầu setUp và parent::tearDown() ở cuối tearDown.
Chạy Tests (Running Tests)
bash
./vendor/bin/pest
./vendor/bin/phpunitHoặc dùng Artisan test runner (output chi tiết hơn):
bash
php artisan testTruyền arguments:
bash
php artisan test --testsuite=Feature --stop-on-failureChạy Tests song song (Running Tests in Parallel)
Mặc định Pest/PHPUnit chạy tuần tự. Chạy song song nhiều process:
bash
php artisan test --parallelCấu hình số process:
bash
php artisan test --parallel --processes=4LƯU Ý
Khi chạy parallel, một số PHPUnit options (như --do-not-cache-result) có thể không khả dụng.
Reporting Test Coverage
bash
php artisan test --coverageChỉ định ngưỡng tối thiểu:
bash
php artisan test --coverage --min=80.3Profiling Tests
bash
php artisan test --profileHiển thị 10 test chậm nhất.
Configuration Caching
Trước khi chạy test, không cache config (config:clear). Cached config có thể gây lỗi khi test.