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

时间:2015-07-29 21:27:58

标签: php laravel laravel-5 phpunit eloquent

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

  • 应用\用户
  • 应用\邮

我查看了有关关系的测试工厂的文档,但没有针对单个实例显示任何内容。我现在拥有的是:

$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()

我可能在这里遗漏了一些小事。我怎样才能让它发挥作用?

1 个答案:

答案 0 :(得分:1)

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

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