Laravel工厂被桌上播种机和测试所消耗。最佳实践/如何做到这一点

时间:2018-04-23 17:04:01

标签: laravel unit-testing laravel-5.6 laravel-seeding

我试图编写一些Laravel factories,以便我们可以预先为所有表格播种,并将它们用于测试。

我对测试不是很有经验,我对建造工厂的前提有些怀疑。

让我们使用这个简单的例子,2个表:

  • 用户
  • 注释

备注的user_id字段为FK

我是否应该让notes工厂能够创建users(调用users工厂)或期望在我尝试创建的任何测试中notes我  已创建可与users关联的notes

如果你愿意,请举一些实际的例子。

1 个答案:

答案 0 :(得分:0)

播种时的关系可以完成。在NoteFactory中试用此代码。

'user_id' => function(){
      return App\User::all()->random();
}

请注意,您的UserFactory应首先运行,然后运行NoteFactory。