使用 PEST Todos 头脑风暴测试 🔥
发布于 作者 Paul Redmond
The @laracasts Twitter 帐户分享了一个关于使用 Pest PHP 头脑风暴测试的绝妙技巧
我喜欢用 @pestphp 头脑风暴功能是多么容易。只需要在测试名称后面添加一个调用 ->todo()。
— Laracasts (@laracasts) 2023 年 5 月 9 日
然后创建一个“待办事项”代码片段来加快速度并保持流程。 pic.twitter.com/42EqPKlHrv
我喜欢 PEST 测试文件感觉像一张草稿纸,你可以在想到想法的时候快速进行修改。想法和测试脚手架之间的摩擦越小越好!
例如,使用 PEST 的 Laravel 项目中的默认功能 `ExampleTest.php` 文件
it('returns a successful response', function () { $response = $this->get('/'); $response->assertStatus(200);}); it('requires a valid email')->todo();it('detects Gmail addresses with a "+" as a non-unique email.')->todo();it('requires a strong password')->todo();
当运行 `pest` CLI 时,你将获得有用的待办事项,你可以在编码时开始处理这些待办事项
更好的是,正如提示中提到的,使用 `--dirty` 标志只运行修改的测试
如果你使用的是 PHPUnit 基于类的测试怎么办?
如果你要在 PHPUnit 基于类的测试中编写类似的东西,它将需要更多样板代码
namespace Tests\Feature; use Tests\TestCase; class ExampleTest extends TestCase{ /** * A basic test example. */ public function test_the_application_returns_a_successful_response(): void { $response = $this->get('/'); $response->assertStatus(200); } /** @test */ public function it_requires_a_valid_email() { $this->markTestIncomplete('requires a valid email'); } /** @test */ public function it_detects_gmail_address_with_a_plus_as_non_unique() { $this->markTestIncomplete('detects Gmail addresses with a "+" as a non-unique email.'); } /** @test */ public function it_requires_a_strong_password() { $this->markTestIncomplete('requires a strong password'); }}
如果运行 PHPUnit 版本,我们不会得到太多输出
$ phpunit ..III 5 / 5 (100%) OK, but there are issues!Tests: 5, Assertions: 2, Incomplete: 3.
谢天谢地,如果你使用的是带有基于类的测试的 PHPUnit,你至少可以使用 `artisan test` 来获得 Laravel 的格式化程序
感谢 @laracasts 提供的 🔥 提示!