Я пишу тесты, где проверяю имеют ли разного толка пользователи права на выполнение разного рода действий. Гость, авторизованный, админ и т.д. Cейчас это выглядит так.
class PostsCRUDTest extends TestCase
{
public function test_guest_has_to_be_verified_user_when_gets_posts_create()
{
$response = $this->get('/posts/create');
$response->assertRedirect('/email/verify');
}
public function test_authorised_user_has_to_be_verified_when_gets_posts_create()
{
$user = User::factory()->create([
'email_verified_at' => null
]);
$response = $this->actingAs($user)->get('/posts/create');
$response->assertRedirect('/email/verify');
}
public function test_verified_user_succeeds_when_gets_posts_create()
{
$user = User::factory()->create();
$response = $this->actingAs($user)->get('/posts/create');
$response->assertStatus(200);
$response->assertSee('Добавить пост');
}
}
И начинает казаться, что лучше заготовить пользователей заранее. Могу ли я сделать это в свойствах класса и будет ли это в целом лучше?