模拟当前登录用户在liferay中进行单元测试

时间:2014-10-29 23:02:16

标签: java junit liferay mockito

我是liferay的新手,我正在完成我的第一项任务。 我创建了一种方法来检查是否为用户分配了给定的角色/权限。

我想写一个测试类来检查给定角色是否分配给当前登录用户? 如何在单元测试中模拟当前登录的用户?

提前致谢

1 个答案:

答案 0 :(得分:1)

此方法并不总是有效,因为您可以成为您无权查看的角色的一部分。

相反,您可以使用RoleLocalServiceUtil及其中的方法来检查角色成员资格,而使用ResourcePermissionLocalServiceUtil来检查特定资源的权限。


更新 - 为了模拟用户,您可以使用以下代码段:

PrincipalThreadLocal.setName(user.getUserId());
PermissionChecker permissionChecker = PermissionCheckerFactoryUtil.create(user);
PermissionThreadLocal.setPermissionChecker(permissionChecker);

同样,如果用户试图检查他们是否属于某个角色,如果他们没有查看该角色的权限,您可能会收到误报。