gpt4 book ai didi

PHPUnit Laravel 无法在 ut 中更新

转载 作者:行者123 更新时间:2023-11-29 21:40:45 25 4
gpt4 key购买 nike

我在使用 phpunit 时遇到了一个恼人的问题。我发现我的数据库没有更新,在触发一个 Eloquent 方法后,所以单元测试的结果总是错误的。

代码如下:

$testTaskUser = TestTaskUser::find(\SeederConstants::$TEST_TASK_USER_ID);
$testTaskUser->update(array(
'status' => TestTaskUserStatus::$INITIALIZED
));
$this->assertEquals($testTaskUser->status,TestTaskUserStatus::$INITIALIZED);
//This assert fails because the 'status' is not updated in the db, which is
//Very confusing to me

phpserver 和 mysql 在我的 Macbook Air 上的 Ubuntu 虚拟机中运行。任何人都可以提供帮助,我们将不胜感激。

最佳答案

您应该确保对于 TestTaskUser 用户,您已将 status 列添加到 $fillable 中。

protected $fillable = ['status'];

请查看mass assignment section

或者,您可以更改代码:

$testTaskUser->update(array(
'status' => TestTaskUserStatus::$INITIALIZED
));

至:

$testTaskUser->status = TestTaskUserStatus::$INITIALIZED;
$testTaskUser->save();

在这种情况下,您不需要填写 fillable 属性

关于PHPUnit Laravel 无法在 ut 中更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34542548/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com