UNPKG

agent-rules-kit

Version:

CLI tool to bootstrap AI agent rules for multiple IDEs and frameworks. Generates optimized rules for Cursor, VS Code, Claude, and 6+ other AI coding assistants.

72 lines (50 loc) 2.25 kB
--- description: Testing best practices for Laravel applications globs: <root>/app/**/*.php,<root>/bootstrap/**/*.php,<root>/routes/**/*.php,<root>/database/migrations/**/*.php,<root>/config/**/*.php,<root>/tests/**/*.php alwaysApply: false --- # Testing Practices in Laravel ## General Principles - **Test Driven Development (TDD)**: Write tests before code when possible. - **Automated Tests**: Every change should be covered by automated tests. - **Coverage**: Aim for 80% code coverage or higher. - **Isolation**: Tests should be independent and executable in any order. - **Determinism**: Tests should produce the same result in every execution. ## Types of Tests ### Unit Tests - Location: `tests/Unit/` - Test classes and methods in isolation (Services, Repositories, etc.) - Use mocks for external dependencies - Fast and without database access ### Integration Tests - Location: `tests/Feature/` - Test interaction between components - May access the database - Cover complete application flows ### API Tests - Location: `tests/Feature/Api/` - Test API endpoints from an external perspective - Verify status codes, response structure, and error cases ## Test Execution ### With Each Change - Run tests affected by the change: `php artisan test --filter=TestName` - Before commit/push, run the complete suite: `php artisan test` - For improved speed: `php artisan test --parallel` ### In CI/CD - All tests must pass before integrating code - Configure GitHub Actions or similar to run tests automatically ## Best Practices - Use **factories** to create test data - Implement **DatabaseTransactions** or **RefreshDatabase** to clean the DB - Prefer specific assertions (assertEquals) over generic ones (assertTrue) - Name tests descriptively: `test_user_can_reset_password()` - A test should verify a single functionality or behavior ## Recommended Tools - **Pest PHP** (preferred since Laravel 8) - **PHPUnit** (traditional alternative) - **Laravel Dusk** for browser tests - **Mockery** for object mocks ## Measurement and Improvement - Run coverage analysis: `php artisan test --coverage` - Regularly review test metrics - Update tests when refactoring code