Вы можете определить Factory для создания ваших моделей. https://laravel.com/docs/5.8/database-testing#writing -заводы Например, в нашем проекте у нас много заводов. Они описывают, как создать модель.
И позже в своем тестовом коде вы просто вызываете $partner = factory(Partner::class)->create()
Для создания модели.
public function testUpdate(): void
{
/** @var Partner $partner */
$partner = factory(Partner::class)->create();
$name = 'Fake Partner';
$description = 'Fake Partner Description';
$response = $this->putJson('/partners/' . $partner->uuid, [
'name' => $name,
'description' => $description,
]);
}
Для выполнения действий через пользователя вы можете использовать пользователя actingAs($user)->get(
https://laravel.com/docs/5.2/testing#sessions -и-аутентификация
Если вашему пользователю требуются любые другие ссылки на другие «сущности», вы можете создать их прямо в определении на своей фабрике пользователей.
$factory->define(User::class, static function (Faker $faker) {
return [
'organization_id' => factory(Organization::class),
'name' => $faker->word,
'description' => $faker->words(3, true),
];
});