Laravel中的单元测试:设置当前已验证用户时出错

时间:2014-07-30 09:10:42

标签: php testing laravel tdd phpunit

在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

有谁知道这里出了什么问题?我在互联网上搜索了几个小时,但找不到任何帮助..

1 个答案:

答案 0 :(得分:1)

问题在于错误:

  

MassAssignmentException:name

您正尝试批量分配变量name - 但您的模型不允许这样做。

从此处更改您的用户模型:

protected $fillable = [];

到此:

protected $fillable = ['name'];

你可以read more about mass assignment here.