使用模型的 Casts 数组来验证 PHPUnit 上的模型完整性

Posted

技术标签:

【中文标题】使用模型的 Casts 数组来验证 PHPUnit 上的模型完整性【英文标题】:Use Model's Casts Array to Verify a Model Integrity on PHPUnit 【发布时间】:2021-03-15 21:37:54 【问题描述】:

环境:phpStorm,使用 Laravel 和 PHPUnit。

我想要什么:在我的用户模型上使用$casts 并执行一个 foreach 函数来比较特定用户的所有字段,断言数据库中的所有变量是否与我的用户模型 $casts 的类型相同。

是否有任何集成功能已经为我做到了这一点?如果没有,请告诉我如何从头开始。

谢谢。

【问题讨论】:

【参考方案1】:

在任何模型上获得 $casts

$user = User::firstOrFail();

$user->getCasts();


/*
 * Output might be an array like

    [
      "id" => "int",
      "email_verified_at" => "datetime",
    ]
*/

但是,如果您在 Model 类上声明 casts 属性,Laravel 将确保正确地进行属性转换 - 请确保根据 $casts 数组转换属性的功能必须已在框架级别进行了彻底测试.

【讨论】:

以上是关于使用模型的 Casts 数组来验证 PHPUnit 上的模型完整性的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 API 中间件在 Laravel 中测试 PHPUnit 一个经过身份验证的用户?

在 Laravel 中使用 Mockery/phpUnit 时出错

如何在 Laravel PHPUnit 测试中获取响应变量?

如何防止模型事件使用 phpunit 触发?

phpunit 测试返回 302 验证错误,为啥不返回 422

在 Laravel 中设置 PHPUnit 测试