安裝與設定 Pest

透過 composer 安裝 Pest

composer require pestphp/pest --dev --with-all-dependencies

如果你是使用 Laravel 專案,需要再安裝 pest-plugin-laravel 與執行 artisan 指令 pest:install 生成一個 Pest 的設定檔案 tests/Pest.php

composer require pestphp/pest-plugin-laravel --dev

php artisan pest:install

Pest 是建構在 PHPUnit 上的,因此原本 PHPUnit 的測試寫法,Pest 完全兼容,並不需要修改舊的測試

以下為原本 PHPUnit 的測試寫法

namespace Tests\Feature;

use Illuminate\Foundation\Testing\RefreshDatabase;
use Tests\TestCase;
use Models\User;

class ExampleTest extends TestCase
{
    use RefreshDatabase;

    /**
     * A basic test example.
     *
     * @return void
     */
    public function test_the_application_returns_a_successful_response()
    {
        $response = $this->get('/');

        $response->assertStatus(200);
    }

    public function test_guest_can_visit_someone_information_page()
    {
        $user = User::factory()->create();

        $response = $this->get(route('users.index', $user->id))

        $response->assertStatus(200);
    }
}

如果改用 Pest 的測試寫法

use Illuminate\Foundation\Testing\RefreshDatabase;

use function Pest\Laravel\get;

uses(RefreshDatabase::class);

test('the application returns a successful response', function () {
    get('/')->assertStatus(200);
});

test('guest can visit someone information page', function () {
    $user = User::factory()->create();

    get(route('users.index', $user->id))->assertStatus(200)
});

在 Laravel 專案中你一樣可以使用 artisan 指令啟動測試

php artisan test

This site uses Just the Docs, a documentation theme for Jekyll.