你好,我使用的是 Laravel 5.5 ,并且已经过测试
public function testCreate()
{
$userAdmin = factory(User::class)->create();
$roleAdmin = Role::where('name', 'admin')->first();
$userAdmin->roles()->attach($roleAdmin);
$this->actingAs($userAdmin)->post('/api/object/create')
->assertJson(["success"=>true]);
}
在我的路线上:
Route::group(['middleware' => 'auth:api'], function () {
Route::group(['prefix'=>'object'], function(){
Route::post('create', 'ObjectController@create')->middleware('can:create,App\Models\Object');
});
});
但是当我运行测试返回时:
Symfony \ Component \ HttpKernel \ Exception \ MethodNotAllowedHttpException
我已经尝试使用以下方法清除路线:
php artisan route:cache
并带有:
$this->actingAs($userAdmin, 'api')->post('/api/object/create')
还有
$this->actingAs($userAdmin, 'api')->post('/object/create')
我在中间件API中使用的我的Policy函数是:
public function create(User $user){
return $user->isAdmin();
}
但是它不起作用。我错了吗?
答案 0 :(得分:0)
您需要登录,因为您具有身份验证中间件。