PHPUnit Laravel无法在ut中更新



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

代码如下:

$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在Ubuntu的vm中运行,在我的Macbookair上。任何能帮忙的人都将不胜感激。

您应该确保为TestTaskUser用户将status列添加到$fillable中。

protected $fillable = ['status'];

请查看批量分配部分

或者,您可以从以下位置更改代码:

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

至:

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

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

最新更新