数据关联的疑惑
在 tests/Unit/QuestionTest.php
中:
/** @test */
public function a_question_has_many_answers()
{
$question = factory(Question::class)->create();
factory(Answer::class)->create(['question_id' => $question->id]);
$this->assertInstanceOf('Illuminate\Database\Eloquent\Relations\HasMany', $question->answers());
}
而在 database/factories/AnswerFactory.php
中:
$factory->define(Answer::class, function (Faker $faker) {
return [
'user_id' => function () {
return factory(User::class)->create()->id;
},
'question_id' => function () {
return factory(Question::class)->create()->id;
},
'content' => $faker->text
];
});
我的疑问是在 tests/Unit/QuestionTest.php
中的:
$question = factory(Question::class)->create();
和 database/factories/AnswerFactory.php
的
'question_id' => function () {
return factory(Question::class)->create()->id;
},
是怎么对应上的,工厂类里是重新创建一个实例的吧,那感觉单元测试类里面就没必要传 ['question_id' => $question->id]
了。
推荐文章: