functional-tests

Installation
SKILL.md

Functional Tests (Symfony)

Use when

  • A controller or HTTP endpoint must be checked through the kernel: status, redirect, rendered DOM, form errors, emails.
  • A repository or service must be tested against the real database with KernelTestCase.
  • An authenticated or role-restricted route needs coverage via loginUser().
  • Key URLs need cheap smoke tests.

Default workflow

  1. Choose the base class: WebTestCase for HTTP, KernelTestCase for services, plain TestCase for pure logic.
  2. Call static::createClient() directly (never bootKernel() first) and read private services with static::getContainer().
  3. Authenticate with $client->loginUser($user) instead of replaying the login form.
  4. Assert the response and the DOM: assertResponseIsSuccessful(), assertResponseRedirects(), assertSelectorTextContains(), assertEmailCount().
  5. Isolate tests with the DAMADoctrineTestBundle PHPUnitExtension, plus Foundry reset for fixtures.
  6. Add smoke tests with a data provider and hardcoded URLs.
Installs
79
GitHub Stars
224
First Seen
Sep 18, 2026