【问题标题】:Testing Laravel Eloquent Relationship测试 Laravel Eloquent 关系
【发布时间】:2018-03-11 07:34:47
【问题描述】:

我想知道确保我的Activity 模型属于User 的最佳方法是什么。

Activity.php

...

public function user()
{
   return $this->belongsTo(User::class);
}

我如何编写一个测试来确保Activity 模型具有这种关系?

【问题讨论】:

  • 您可以使用像sqlite这样的数据库来测试它在工厂创建用户,然后创建一个活动,在加载活动后将其附加到用户并测试它是否与创建的用户链接
  • Activity::find(1)->user?
  • 谢谢。 @Maraboc 你能写一个答案吗?我会给你积分。
  • GIVEN 你使用带有外键约束的 db 引擎,WHEN 你创建你的数据库,THEN 确保 FK 约束user_id 专栏 ;) 并且不要测试雄辩,没必要

标签: laravel testing eloquent phpunit


【解决方案1】:

使用数据库作为数据源测试 eloquent 是没有问题的,所以你可以像 sqlite 一样使用数据库,以提高速度。

要测试它,请使用工厂创建用户,然后创建一个活动,然后将其附加到创建的用户,然后加载活动并测试它是否与创建的用户链接。

我们遵循 Given,When, Then => Given 你有你的用户 When 他创建了一个活动(登录,创建一个帖子...... ) 然后检查创建的活动是否属于给定用户;)

【讨论】:

    猜你喜欢
    • 2013-05-14
    • 1970-01-01
    • 2016-08-13
    • 2018-02-09
    • 2020-10-14
    • 1970-01-01
    • 1970-01-01
    • 2016-11-21
    • 2015-01-01
    相关资源
    最近更新 更多