是否应该为每个Web应用程序路由测试授权?

时间:2019-02-21 12:01:32

标签: php laravel unit-testing authorization middleware

我对测试覆盖率有疑问。我正在开发具有某些访问规则的基本CRUD应用程序。经过身份验证的用户可以创建/编辑表单,并允许其他用户编辑或查看对表单的访问权限。我想知道的是,我是否应该针对每种可能的授权方案编写功能测试,即:

  • 客人无法编辑表单
  • 用户可以编辑自己的表单
  • 用户无法编辑其他用户表单
  • 用户可以编辑具有“编辑”访问权限的其他用户
  • 用户无法编辑其他具有“查看”权限的用户

然后将需要为每个功能编写这些内容,例如删除表格,查看表格的响应等。

是否需要包括所有这些内容以确保针对每个功能在正确的级别应用授权?还是应该仅对基本功能进行功能测试(即用户可以编辑其表单),然后进行单元测试以检查授权中间件并信任就足够了?

编辑:我知道如何添加所需的授权,我只是问是否不对每个级别进行测试。

1 个答案:

答案 0 :(得分:0)

我的答案是

  

我正在开发一个基本的CRUD应用程序

如果您要进行多个用户类型的应用程序实施角色和权限

可以在此处找到

https://laravel-news.com/two-best-roles-permissions-packages

或自行实施

其他

问题1:

访客无法编辑表单

SCHED_NAME

问题2和3:

用户可以编辑自己的表单Route::middleware(['web', 'auth'])->group(function () { //authenticated user functions Route::get('testmiddleware',function(){return 'user is loggend in';}); Route::get('/posts/{post}/edit', 'PostController@edit')->name('posts.edit'); Route::put('/posts/{post}', 'PostController@update')->name('post.update'); }); 用户无法编辑其他用户的表单

例如,假设我在posts表中的post中有一个归档的user_id

AND

问题4和5:

用户可以编辑具有“编辑”访问权限的其他用户

用户无法编辑其他具有“查看”权限的用户

我不知道要这么做,但是您可以通过基于角色的访问控制来做到这一点。