PHPUnit Laravel无法更新

时间:2015-12-31 07:04:31

标签: php mysql laravel eloquent phpunit

使用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在我的Macbook air上的Ubuntu中以vm运行。 任何人都可以提供帮助将非常感激。

1 个答案:

答案 0 :(得分:0)

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

protected $fillable = ['status'];

请查看mass assignment section

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

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

为:

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

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