简体   繁体   English

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

[英]mock currently logged-in user in liferay for a unit test

I'm new to liferay, I'm working on my first task. 我是Liferay的新手,我正在完成第一个任务。 I've created a method to check if a given role/permission is assigned to a user. 我创建了一种方法来检查给定的角色/权限是否分配给用户。

I want to write a test class that checks if the given role is assigned to a current logged-in user? 我想编写一个测试类来检查给定角色是否已分配给当前登录用户? How can I mock a currently logged-in user in a unit test? 如何在单元测试中模拟当前登录的用户?

Thanks in advance 提前致谢

This approach will not always work, because you can be a part of a role that you do not have permission to view. 这种方法并不总是有效,因为您可以成为没有权限查看的角色的一部分。

Instead, you can use RoleLocalServiceUtil and the methods therein to check role membership, and ResourcePermissionLocalServiceUtil to check permissions on a particular resource. 相反,您可以使用RoleLocalServiceUtil及其中的方法检查角色成员资格,并使用ResourcePermissionLocalServiceUtil检查特定资源的权限。


Update - In order to mock a user, you can use this snippet: 更新-为了模拟用户,您可以使用以下代码段:

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

Again, if the user is trying to check if they belong to a role, you may get an false negative if they do not have permission to view that role. 再次,如果用户试图检查他们是否属于某个角色,则如果他们没有查看该角色的权限,则可能会得到假阴性。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM