php-testing

Solid

PHP testing patterns: PHPUnit, test doubles, database testing.

Testing & QA 392 stars 36 forks Updated today MIT

Install

View on GitHub

Quality Score: 94/100

Stars 20%
86
Recency 20%
100
Frontmatter 20%
70
Documentation 15%
100
Issue Health 10%
50
License 10%
100
Description 5%
100

Skill Content

# PHP Testing Skill ## Overview Apply PHPUnit testing patterns for PHP projects: unit tests with data providers, test doubles (stubs, mocks, Prophecy), database testing (Laravel/Symfony), HTTP testing, and coverage configuration. > See `references/patterns.md` for full code examples, the failure modes table, and the commands reference. ## Reference Loading Table | Signal | Load These Files | Why | |---|---|---| | implementation patterns | `patterns.md` | Loads detailed guidance from `patterns.md`. | ## Instructions ### Phase 1: IDENTIFY Determine what needs testing: - Unit logic: use PHPUnit `TestCase` with `test` prefix or `@test` annotation - Table-driven cases: use `@dataProvider` static methods - Collaborator behavior: use stubs (return values only) or mocks (assert interactions) - Database state: use `DatabaseTransactions` (Laravel) or `KernelTestCase` (Symfony) - HTTP endpoints: use Laravel HTTP helpers or Symfony `WebTestCase` ### Phase 2: WRITE Write tests following these rules: - Call `parent::setUp()` first in every `setUp()` method - Use `assertSame()` instead of `assertTrue($a === $b)` for meaningful failure messages - Mock only collaborators and dependencies, never the class under test - Keep tests independent -- do not use `@depends` chains - Extract repetitive cases to `@dataProvider` rather than duplicating test methods For test doubles: use `createStub()` when you only need return values, `createMock()` when asserting method calls, and Prophecy (`p...

Details

Author
notque
Repository
notque/vexjoy-agent
Created
2 months ago
Last Updated
today
Language
Python
License
MIT

Integrates with

Similar Skills

Semantically similar based on skill content — not just same category