Executando verificação de segurança...
1

Testes no Laravel retornando erro 404 mesmo em rotas existentes

Olá, pessoal! Tudo bem? Recentemente estava fazendo alguns testes dentro da minha aplicação Laravel, na versão 10, e me deparei com um caso curioso: Apenas 1 test para a rota funciona, e o restante retorna 404.

namespace Tests\Feature\Contact;

use Illuminate\Foundation\Testing\WithFaker;
use Tests\TestCase;

class CreateContactTest extends TestCase
{
    use WithFaker;

    protected string $path = '/api/contact';

    public function test_it_should_create_a_contact(): void
    {
        $response = $this->postJson($this->path, [
            'email'=> $this->faker->email(),
            'name' => $this->faker->name(),
            'phone'=> $this->faker->phoneNumber(),
            'subject' => $this->faker->realText(100),
            'message' => $this->faker->realText(250),
        ]);

        $response->assertNoContent();
    }

    public function test_it_should_return_422_when_providing_wrong_data(): void
    {
        $response = $this->postJson($this->path);

        $response->assertUnprocessable();
    }
}

Esse é um teste simples, que testados sozinhos, funionam, mas quando é testado toda a classe, ai o erro já acontece.

Olha o log no terminal:

> php artisan test --filter CreateContactTest

   FAIL  Tests\Feature\Contact\CreateContactTest
  ✓ it should create a contact                                                                                   0.44s
  ⨯ it should return 422 when providing wrong data                                                               0.05s
  ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
   FAILED  Tests\Feature\Contact\CreateContactTest > it should return 422 when providing wrong data
  Expected response status code [422] but received 404.
Failed asserting that 422 is identical to 404.

  at tests\Feature\Contact\CreateContactTest.php:31
     27▕     public function test_it_should_return_422_when_providing_wrong_data(): void
     28▕     {
     29▕         $response = $this->postJson($this->path);
     30▕
  ➜  31▕         $response->assertUnprocessable();
     32▕     }
     33▕ }
     34▕


  Tests:    1 failed, 1 passed (3 assertions)
  Duration: 0.81s

Alguém poderia me ajudar a entender o que está acontecendo?

Carregando publicação patrocinada...
1
1

Se eu postasse a lista completa, seria muita coisa ksksks mas relacionado à rota do teste:

POST      api/contact ...................... ContactController@store

Ela ainda está aparendo... É muito estranho, é como se depois do teste, ou entre os testes, as rotas sumissem, talvez... mas depois estão disponivies 'novamente'

1