插件
在本节中,我们将讨论我们认可的官方和社区开发的插件。插件主要提供命名空间函数、控制台命令、自定义断言以及其他命令行选项,以增强默认的 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 Maduro5 6 //7});
要了解有关 Faker 的更多信息,包括其提供的 API 的全面详细信息,请查阅 其官方文档。
Laravel
源代码:github.com/pestphp/pest-plugin-laravel
要开始使用 Pest 的 Laravel 插件,您需要通过 Composer 引用此插件。
1composer require pestphp/pest-plugin-laravel --dev
此插件为默认的 Pest 安装添加了其他 Artisan 命令和函数。例如,要生成 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});
此外,借助此插件,您可以在使用诸如 actingAs
、get
、post
和 delete
之类的命名空间函数时绕过 $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 管理团队的任务和职责:团队管理