工厂定义:
public function definition()
{
return [
'user_id' => function() {
return User::factory()->create()->id;
},
'category_id' => function() {
return Category::factory()->create()->id;
},
'title' => $this->faker->sentence,
'body' => $this->faker->paragraph,
];
}
Run Code Online (Sandbox Code Playgroud)
抛出错误的测试
<?php
namespace Tests\Unit;
use App\Models\Question;
use PHPUnit\Framework\TestCase;
class QuestionTest extends TestCase
{
protected $question;
public function setUp() : void
{
parent::setUp();
$this->question = Question::factory()->create();
}
public function test_it_has_an_owner()
{
$this->assertInstanceOf('App\User', $this->question->creator);
}
}
Run Code Online (Sandbox Code Playgroud)
那是错误:
有 1 个错误:
1) Tests\Unit\QuestionTest::test_it_has_an_owner
InvalidArgumentException: Unknown formatter "sentence"
/var/www/html/QA_CRUD/vendor/fzaninotto/faker/src/Faker/Generator.php:248
/var/www/html/QA_CRUD/vendor/fzaninotto/faker/src/Faker/Generator.php:228
/var/www/html/QA_CRUD/vendor/fzaninotto/faker/src/Faker/Generator.php:285
/var/www/html/QA_CRUD/database/factories/QuestionFactory.php:34
/var/www/html/QA_CRUD/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Factories/Factory.php:366
/var/www/html/QA_CRUD/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Factories/Factory.php:345
/var/www/html/QA_CRUD/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Factories/Factory.php:329 …Run Code Online (Sandbox Code Playgroud)