tdd-with-phpunit
Installation
SKILL.md
Tdd With Phpunit (Symfony)
Use when
- Driving a feature with RED-GREEN-REFACTOR using PHPUnit 10/11 class-based tests.
- Choosing between
TestCase,KernelTestCaseandWebTestCasefor a new behavior. - Testing a console command, or an invalid form that must answer 422.
- Swapping an external service for a double through the test container.
Default workflow
- RED: pick the base class, write the test with
#[Test],#[DataProvider]and#[CoversClass], run it and check it fails for the right reason. - GREEN: write the minimum code that passes.
- REFACTOR with the suite green, re-running it after each change.
- Replace an external boundary with
static::getContainer()->set(Service::class, $mock). - Test commands with
CommandTester, or withrunCommand()andassertCommandIsSuccessful()on Symfony 8.1+. - Assert invalid form submissions with
assertResponseIsUnprocessable().