在Laravel 5.2中,我需要测试经过身份验证的用户的表单提交。
我需要使用assertSessionHasErrors
函数,但仅在使用call
函数时有效。
如果我使用call
函数,我总是会重定向到登录页面。
如果我使用actingAs
函数,我将永远不会看到验证错误。
使用以下代码:
$user = factory(App\User::class)->create();
$this
->actingAs($user)
->visit('/offers/create')
->select('1', 'client_id')
->select('2', 'network_id')
->type('50', 'royalty')
->press('SAVE')
->seePageIs('/offers');
$errors = session('errors');
$this->assertSessionHasErrors();
我收到错误原因,因为在会话中未定义“错误”。
如果我使用此代码:
$response = $this->call('POST', 'offers', array(
'_token' => csrf_token(),
'client_id' => 1,
'network_id' => 2,
'royalty' => 50
));
由于用户未通过身份验证,我被重定向到登录页面。