您可以定义 Factory 来创建模型。https://laravel.com/docs/5.8/database-testing#writing-factories
例如在我们的项目中,我们有很多工厂。他们描述了如何创建模型。
稍后在您的测试代码中,您只需调用$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-and-authentication
如果您的用户需要对其他“实体”的任何其他引用,您可以在用户工厂的定义中直接创建它们。
$factory->define(User::class, static function (Faker $faker) {
return [
'organization_id' => factory(Organization::class),
'name' => $faker->word,
'description' => $faker->words(3, true),
];
});