我是救生圈的新手,我正在做我的第一项任务。我创建了一个方法来检查是否为用户分配了给定的角色/权限。
我想写一个测试类,检查给定的角色是否分配给了当前登录的用户?如何在单元测试中模拟当前登录的用户?
提前感谢
这种方法并不总是有效的,因为您可能是没有查看权限的角色的一部分。
相反,您可以使用RoleLocalServiceUtil
及其方法来检查角色成员身份,使用ResourcePermissionLocalServiceUtil
来检查特定资源的权限。
更新-为了模拟用户,您可以使用以下代码段:
PrincipalThreadLocal.setName(user.getUserId());
PermissionChecker permissionChecker = PermissionCheckerFactoryUtil.create(user);
PermissionThreadLocal.setPermissionChecker(permissionChecker);
同样,如果用户试图检查他们是否属于某个角色,如果他们没有查看该角色的权限,则可能会得到假阴性。