外掛

在這一部分,我們將討論我們認可的官方和社群開發外掛。外掛主要提供命名空間函式、主控台指令、自訂預期,以及額外的命令列選項來擴充預設的 Pest 體驗。

如果您是外掛開發人員,請參閱我們的 建立外掛文件,以取得更多關於如何建立 Pest 外掛的資訊。

下列外掛由 Pest 團隊維護


Faker

原始碼github.com/pestphp/pest-plugin-faker

要開始使用 Pest 的 Faker 外掛,您需要透過 Composer 需求外掛。

1composer require pestphp/pest-plugin-faker --dev

安裝外掛後,您可以利用命名空間的 fake 函式為您的測試產生假資料。

1use function Pest\Faker\fake;
2 
3it('generates a name', function () {
4 $name = fake()->name; // random name...
5 
6 //
7});

您也可以指定 fake() 函式應使用的「地區設定」,方法是將地區設定提供給函式。

1use function Pest\Faker\fake;
2 
3it('generates a portuguese name', function () {
4 $name = fake('pt_PT')->name; // Nuno Maduro
5 
6 //
7});

要更加了解 Faker,包括它提供的 API 的完整詳細資訊,請參閱 其官方文件


Laravel

原始碼github.com/pestphp/pest-plugin-laravel

要開始使用 Pest 的 Laravel 外掛,您需要透過 Composer 需求這個外掛。

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

這個外掛會新增額外的 Artisan 指令和函式到預設的 Pest 安裝。例如,要在 tests/Feature 目錄中產生新的測試,您現在可以使用 pest:test Artisan 指令。

1php artisan pest:test UsersTest

您可以在建立測試時提供 --unit 選項,以將測試放入 tests/Unit目錄中。

1php artisan pest:test UsersTest --unit

執行 pest:dataset Artisan 指令會在 tests/Datasets 目錄中建立新的資料集。

1php artisan pest:dataset Emails

正如您所知,Laravel 提供了各種斷言,您可以在功能測試中加以利用。在使用 Pest 的 Laravel 外掛時,您可以像平常一樣存取所有這些斷言。

1it('has a welcome page', function () {
2 $this->get('/')->assertStatus(200);
3});

此外,在這個外掛的協助下,您在使用 actingAsgetpostdelete 等命名空間函式時,可以略過 $this 變數。

1use function Pest\Laravel\{get};
2 
3it('has a welcome page', function () {
4 get('/')->assertStatus(200);
5 // same as $this->get('/')...
6});

為了說明使用另一個範例的這個方便功能,我們可以撰寫一個測試,假裝一個經過驗證的使用者存取受限的儀表板頁面。

1use App\Models\User;
2use function Pest\Laravel\{actingAs};
3 
4test('authenticated user can access the dashboard', function () {
5 $user = User::factory()->create();
6 
7 actingAs($user)->get('/dashboard')
8 ->assertStatus(200);
9});

如同您所預期的一樣,所有先前可以透過 $this-> 存取的斷言都可用作為命名空間函式。

1use function Pest\Laravel\{actingAs, get, post, delete, ...};

您可以在 Laravel 網站上找到完整的測試文件說明:laravel.com/docs/11.x/testing


Livewire

原始碼github.com/pestphp/pest-plugin-livewire

若要安裝 Pest 的 Livewire 外掛,您需要透過 Composer 載入外掛。

1composer require pestphp/pest-plugin-livewire --dev

安裝外掛後,可以使用 livewire 命名空間函式來存取您的 Livewire 組件。

1use function Pest\Livewire\livewire;
2 
3it('can be incremented', function () {
4 livewire(Counter::class)
5 ->call('increment')
6 ->assertSee(1);
7});
8 
9it('can be decremented', function () {
10 livewire(Counter::class)
11 ->call('decrement')
12 ->assertSee(-1);
13});

Watch

原始碼github.com/pestphp/pest-plugin-watch

若要安裝 Pest 的「watch」外掛,您需要透過 Composer 載入外掛。

1composer require pestphp/pest-plugin-watch --dev

同時安裝 fswatch,讓 Pest 可以監控檔案變更。

安裝外掛與 fswatch 後,您就可以在執行 Pest 時使用 --watch 選項。這個選項會指示 Pest 監控您的應用程式,並且在您變更特定目錄清單內的檔案時自動重新執行您的測試。

1pest --watch

預設情況下,外掛會監控下列目錄。

1tests/
2app/
3src/

若要自訂監控目錄,請提供以逗號分隔的目錄清單(相對於您的應用程式根目錄)給 --watch 標記。

1pest --watch=app,routes,tests

在本節中,我們了解到外掛可以如何提升您的 Pest 體驗。接著,讓我們看看您可以如何使用 Pest 來管理團隊的工作和責任:團隊管理