Files
SealShare/.claude/skills/testing-best-practices/rules/finding-features.md
T
Andreas Reinhold / reiniandClaude Opus 5 92b3b3de56 Regenerate Boost guidelines and skills
Generated by boost:update for Boost 2.8, which replaces the pest-testing
skill with testing-best-practices and adds infer-conventions.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017XYnWFt9pJEwvAmNFN38XD
2026-09-10 10:42:22 +02:00

2.4 KiB

How to Find Test Framework Features

Pest adds features faster than this skill can list them. Find an existing feature before implementing the behavior by hand.

  • Give search-docs the capability you need rather than the name of a function you remember. It returns features available in the installed version.
  • Fetch https://pestphp.com/llms.txt for the complete feature list and additions in each release.
  • If a search returns no results, tell the user that the installed version does not provide the feature. Do not write an API that you have not confirmed.

Search for a feature in this table before you write the code by hand.

Work that you need Term to search for
Run one test with many input values datasets, bound datasets
Assert over many values or over a collection higher-order expectations
Remove the same setup from each test in a file hooks, higher-order tests
Apply a convention to the complete codebase architecture testing
Measure if the suite finds a defect mutation testing
Find code with no types type coverage
Reduce the time of a slow suite parallel, profiling
Split the suite across CI jobs sharding, --update-shards
Run only the tests that a change affects Test Impact Analysis, --tia
Assert that a value has a known format validation expectations
Run one test while you debug filtering, --bail, --dirty

Built-in Laravel Assertion Methods

Laravel provides assertions for each part of the framework. Fetch https://laravel.com/framework/docs/testing for the complete list, and search for an assertion before building a check by hand. Examples include assertDatabaseHas(), assertModelExists(), assertSoftDeleted(), response assertions such as assertRedirectToRoute() and assertJsonPath(), and fake assertions such as Queue::assertPushed() and Notification::assertSentTo().

A hand-built check fails with false is not true, which identifies nothing. A framework assertion names the incorrect table, value, or response, so the failure indicates what to fix.

// The failure says that false is not true. Instead of this...
expect(User::where('email', 'taylor@laravel.com')->exists())->toBeTrue();

// Use this... the failure names the table and the attributes that it did not find...
$this->assertDatabaseHas('users', ['email' => 'taylor@laravel.com']);