在Laravel的单元测试中,我使用下面的代码设置当前经过身份验证的用户。这正是Laravel在其网站上记录的原因。我使用Laravel提供的默认用户模型。
public function testLoggedInUserCanCreateCat() {
Route::enableFilters();
$user = new User(array(
'name' => 'john'
));
$this->be($user);
$this->call('GET', '/cats/create');
$this->assertResponseOk();
}
出于某种原因,当我在SSH中运行 phpunit 时,我收到以下错误:
1) GlobalTest::testLoggedInUserCanCreateCat
Illuminate\Database\Eloquent\MassAssignmentException: name
有谁知道这里出了什么问题?我在互联网上搜索了几个小时,但找不到任何帮助..
答案 0 :(得分:1)
问题在于错误:
MassAssignmentException:name
您正尝试批量分配变量name
- 但您的模型不允许这样做。
从此处更改您的用户模型:
protected $fillable = [];
到此:
protected $fillable = ['name'];