*/ protected array $fixtures = [ 'app.{{MODEL_NAME}}', ]; /** * Test index method */ public function testIndex(): void { // Act $this->get('/{{ROUTE_PATH}}'); // Assert $this->assertResponseOk(); $this->assertResponseContains('{{EXPECTED_TEXT}}'); } /** * Test view method with valid ID */ public function testViewValidId(): void { // Act $this->get('/{{ROUTE_PATH}}/view/1'); // Assert $this->assertResponseOk(); } /** * Test add method GET renders form */ public function testAddGet(): void { // Act $this->get('/{{ROUTE_PATH}}/add'); // Assert $this->assertResponseOk(); } /** * Test add method POST with valid data */ public function testAddPostSuccess(): void { // Arrange $this->enableCsrfToken(); $this->enableSecurityToken(); $data = [ 'name' => 'New Item', 'status' => 'active', ]; // Act $this->post('/{{ROUTE_PATH}}/add', $data); // Assert $this->assertResponseSuccess(); $this->assertRedirect(['action' => 'index']); $this->assertFlashMessage('The {{ENTITY_LOWER}} has been saved.'); } /** * Test add method POST with validation errors */ public function testAddPostValidationFailure(): void { // Arrange $this->enableCsrfToken(); $this->enableSecurityToken(); $data = []; // Empty or invalid data // Act $this->post('/{{ROUTE_PATH}}/add', $data); // Assert $this->assertResponseOk(); // Renders form view with errors } }