使用模型关系和工厂进行Laravel 5.1测试


Laravel 5.1 testing with model relationships and factories

目前我有2个模型(和测试工厂):

  • 应用程序用户'
  • App '帖子

我已经查看了有关具有关系的测试工厂的文档,但是没有任何内容专门显示单个实例。我现在得到的是:

$user = factory(App'User::class)->create(); $post = factory(App'Post::class)->create(); $post->user()->save($user);

我目前得到以下PHPUnit错误:BadMethodCallException: Call to undefined method Illuminate'Database'Query'Builder::save()

我可能在这里遗漏了一些小的东西。我怎样才能让它工作?

$post->user()返回关系定义,而不是相关对象。如果需要将用户与帖子关联并保存它,则需要执行以下操作:

$user = factory(App'User::class)->create();
$post = factory(App'Post::class)->create();
$post->user()->associate($user);
$post->save();