0
我是liferay的新手,我正在處理我的第一項任務。 我創建了一個方法來檢查給定的角色/權限是否分配給用戶。模擬當前登錄的用戶在liferay中進行單元測試
我想編寫一個測試類來檢查給定角色是否分配給當前登錄用戶? 如何在單元測試中模擬當前登錄的用戶?
在此先感謝
我是liferay的新手,我正在處理我的第一項任務。 我創建了一個方法來檢查給定的角色/權限是否分配給用戶。模擬當前登錄的用戶在liferay中進行單元測試
我想編寫一個測試類來檢查給定角色是否分配給當前登錄用戶? 如何在單元測試中模擬當前登錄的用戶?
在此先感謝
這種方法並不總是可行的,因爲你可以是您沒有權限查看角色的一部分。
取而代之,您可以使用RoleLocalServiceUtil
及其中的方法檢查角色成員資格,並使用ResourcePermissionLocalServiceUtil
來檢查特定資源的權限。
更新 - 爲了嘲笑用戶,你可以使用這個片斷:
PrincipalThreadLocal.setName(user.getUserId());
PermissionChecker permissionChecker = PermissionCheckerFactoryUtil.create(user);
PermissionThreadLocal.setPermissionChecker(permissionChecker);
同樣,如果用戶試圖檢查他們屬於一個角色,你可能會得到如果他們沒有權限查看該角色,則爲假否定。
謝謝@Ben Vonderhaar。其實我的問題是,有沒有辦法模擬當前登錄用戶而不是硬編碼userId。我已經使用RoleLocalServiceUtil來檢查所需的。 – user3487063 2014-10-29 23:22:32
@ user3487063是的,你可以模擬用戶。答案已更新。我給出我最初的解釋的原因是,在某些情況下,您可能會對您的測試產生錯誤的否定,但可以假裝成另一個用戶。 – 2014-10-30 21:02:30