Test trong laravel

Laravel được xây dựng với bộ test ngay bên trong. Trong thực tế , hỗ trợ testing với PHPUnit được bên ngoài và 1 file phpunit.xml đã được cài đặt sẵn trong ứng dụng. framework cũng mang đến nhiều phương thức tiện lợi cho phép bạn thực hiên test.

mặc định, thư mục test ứng dụng của bạn chứa 2 thư mục: Featuer và Unit. Unit tests là kiểm tra các phần nhỏ, phần bị cô lâp code của bạn. trong thực tế, hầu hết các unit test tập trung vào 1 phương thức. Các Feature test có thể test các phần code lớn hơn, bao gồm cách đối tượng tương tác với nhau như thế nào hoặc thậm trí 1 HTTP request trả về 1 JSON.

1 file ExampleTest.php được cung cấp bởi cả 2 thư mục Feature và Unit test. Sau khi cài đặt ứng dụng , chạy phpunit trong command để chạy test.

Môi trường

Khi chạy các test qua phpnit, Laravel cũng tự động đặt cấu hình môi trường để test vì các biến môi trường được định nghĩa trong file phpunit.xml. Laravel cũng tư động cấu hình session và cache cho array driver khi đang test, có nghĩa là không có session hoăc dữ liệu cache được duy trì trong khi test.

Bạn cũng có thể thoải mái định nghĩa các giá tri biến môi trường khi cần. Các biến môi trường được định nghĩa trong file phpunit.xml, nhưng hãy chắc chắn làm sạch các cache cấu hình sử dụng lệnh config:clear trước khi chạy test.

Ngoài ra, bạn có thể tạo 1 file .env,testing trong thư mục dự án gốc. File này sẽ ghi đè file .env khi chạy các test HPUnit
hoặc thực thi bằng lệnh --env=testing.

Tạo và chạy test

Để tạo 1 test case, sử dụng lệnh make:test:

// Create a test in the Feature directory...
php artisan make:test UserTest

// Create a test in the Unit directory...
php artisan make:test UserTest --unit

1 khi test được sinh ra , bạn có thể định nghĩa các phương thức test như bình thường khi sử dụng PHPUnit. Để chạy các test, thực thi lệnh phpunit hoăc artisan test:


<?php

namespace Tests\Unit;

use PHPUnit\Framework\TestCase;

class ExampleTest extends TestCase
{
    /**
     * A basic test example.
     *
     * @return void
     */
    public function testBasicTest()
    {
        $this->assertTrue(true);
    }
}

Lệnh chạy test

Ngoài lệnh phpunit, bạn cũng có thể sử dụng lệnh test Artisan để chạy các test. Lệnh Artisan test cung cấp nhiều thông tin hơn về đoạn test mà hiện tại đang chạy và cũng tự động dừng khi đoạn test đầu tiên thất bại.

php artisan test

bất kỳ đối số nào đươc truyền vào bằng phpunit cũng có thể truyền qua lệnh test Artisan

php artisan test --group=feature
1 Likes