Laravel testing
Skill ComeOnOliver/skillshub/skills/HoangNguyen0403/agent-skills-standard/laravel-testing
π§ The right skill, one API call. AI agent skills registry with token-efficient skill resolution. 5,000+ skills from 500+ top repos.
npx -y skills add ComeOnOliver/skillshub --skill laravel-testingAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
What its author says it does
Copied from the file, not written here
Automated testing standards with Pest and PHPUnit. Use when writing Pest or PHPUnit feature/unit tests in Laravel applications. (triggers: tests/**/*.php, phpunit.xml, feature, unit, mock, factory, sqlite)
SKILL.md
2.2 KB, 499 tokens by cl100k_base, as published. Nobody here has run it
Laravel Testing
Priority: P1 (HIGH)
Structure
tests/
βββ Feature/ # Integration/HTTP tests
βββ Unit/ # Isolated logic tests
βββ TestCase.php
Implementation Guidelines
Pest & Modern Testing
- Feature Tests: Use
uses(RefreshDatabase::class)at the top of Pest files. Example:it('creates post', fn() => $this->postJson('/api/posts', [...])verifies database rolled back after each test. - Transactions: For faster but non-truncating isolation, use
DatabaseTransactions.
Mocking & External Services
- Service Mocking: Use
$this->mock(PaymentService::class)withshouldReceive('charge')->once()->with(100)to assert interaction. - Loose Verification: Use
$this->spy()for behavior validation without strict ordering. - Network Safety: Never make real network calls in automated tests.
Test Data & Infrastructure
- Factories: Create test data via
Post::factory()->count(3)->create(['user_id' => $id]). - Definition: Implement
definition(): arrayusingfake()in factory classes. - Generation: Run
php artisan make:factory PostFactory --model=Post. - SQLite Support: In
phpunit.xml, setDB_CONNECTION' value='sqlite'andDB_DATABASE' value=':memory:'for in-memory, lightning-fast tests.
HTTP Assertions
- Fluent Assertions: Chain
assertStatus(201),assertJson(['data' => ...]), andassertJsonStructure. - Header Verification: Use
assertHeader('Content-Type', 'application/json').
Anti-Patterns
- No real network calls: Always mock or stub external services.
- No state leakage between tests: Use
RefreshDatabasetrait. - No
DB::table()->insert(): Never DB::table()->insert() raw data in tests β use Eloquent Factories instead. - No heavy computations in unit tests: Move to Feature layer.
References
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.