Test Laravel - Como fazer o teste de login com PHPUnit
Hoje, vou te mostrar como fazer o teste de login com PHPUnit no Laravel. Este artigo vai cobrir apenas a parte de teste de login.
Assumo que você já tenha migrado o banco de dados padrão do Laravel e criado o modelo respectivo para isso.
Criar Fábrica de Usuários Primeiro, vamos criar uma fábrica de usuários para o login. Você precisa executar o seguinte comando para criar a fábrica de usuários.
php artisan make:factory UserFactory
Ele criará um arquivo chamado UserFactory na pasta database \> factories. Agora vamos atualizar o arquivo da fábrica assim:
<?php
use Faker\Generator as Faker;
$factory->define(App\User::class, function (Faker $faker) {
return [
'name' => $faker->name,
'email' => $faker->email,
'password' => bcrypt('password')
];
});
Agora, vamos criar um arquivo de teste de login. Para isso, execute o seguinte comando no terminal:
php artsian make:test LoginTest
Isso criará um arquivo chamado LoginTest na pasta tests/Feature. Agora, vamos criar um método lá.
public function test_a_visitor_can_able_to_login()
{
$user = User::factory()->create();
$response = $this->actingAs($user)->get('/home');
$response->assertStatus(200);
}
O arquivo completo será assim:
<?php
namespace Tests\Feature;
use App\User;
use Tests\TestCase;
use Illuminate\Foundation\Testing\RefreshDatabase;
class LoginTest extends TestCase
{
use RefreshDatabase;
public function test_a_visitor_can_able_to_login()
{
$user = User::factory()->create();
$response = $this->actingAs($user)->get('/home');
$response->assertStatus(200);
}
}
Até agora, terminamos de escrever nosso teste. Agora, vamos executar os testes. No terminal, execute o seguinte comando:
php artisan test
Agora você deverá ser capaz de ver o resultado dos seus testes, seja passando ou falhando.
Obrigado.