使用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运行。 任何人都可以提供帮助将非常感激。
答案 0 :(得分:0)
您应该确保TestTaskUser
用户已将status
列添加到$fillable
。
protected $fillable = ['status'];
或者,您可以从以下位置更改代码:
$testTaskUser->update(array(
'status' => TestTaskUserStatus::$INITIALIZED
));
为:
$testTaskUser->status = TestTaskUserStatus::$INITIALIZED;
$testTaskUser->save();
在这种情况下,您不需要填写fillable
属性