關於shiro單元測試遇到的問題

2021-10-02 21:25:54 字數 993 閱讀 2315

本文章是關於shiro開發遇到的一些小問題,和一些坑,希望其他人看到可以減少掉坑的世間。

單元測試是基於自定義realm完成後測試shiro的認證與授權的。

我遇到的第乙個問題就是單元測試的時候realm檔案的類變數無法自動裝配,控制台報錯該變數為空,錯誤如下

而出錯的**是這樣的

經過除錯我發現feignclientproxy為空(這裡利用feign遠端獲取主主體的角色與許可權,再此不過多贅述),一開始以為是該類沒有在掃瞄範圍內,於是加上頂部的@component註解,但後來發現還是沒有效果,那麼應該就是我**本身出現了錯誤,於是仔細從頭查閱了一遍**發現是在測試類宣告類變數realm的時候犯了低階錯誤

因為是看教程這麼寫的,自己沒有多加思考於是犯錯,沒有使用註解,修改的方式就是新增注釋的那兩行。

第二個錯誤就是關於給realm的******authorization新增角色和許可權時遇到的問題。我的**如下

由於******authorization.setroles方法需要的引數時set集合,而我從feign獲取的資料是object型別,根據ide提示自動修改為強制轉換為set集合,但是這樣會報錯,提示告訴我們從feign獲得的資料型別是arraylist,所以要採用list轉set方法

解決的方法如前乙個圖的注釋部分。

單元測試遇到的坑

使用mockito來來模擬外部依賴的物件,完成單元測試。結果發現when mock.somemethod thenreturn 對static修飾的方法是無法設定方法呼叫的預期返回,與我所需的單元測試不符合。遂改用powermockito,powermock擴充套件了easymock和mockito...

shiro實戰系列 十三 之單元測試

1.必須建立乙個 subject 例項 2.subject 例項必須繫結當前執行的執行緒。shiro 擁有為正在執行的應用程式自動地執行繫結 解除繫結邏輯的建築元件。例如,在 web 應用程式中,當過濾 乙個請求時,shiro 的根過濾器執行該邏輯。但由於測試環境和框架不同,我們需要自己選擇自己的測...

關於swift 單元測試的補充

最近小弟在自己學習研究swift 習慣於寫一邊寫單元測試一邊寫邏輯的我來說,在xcode環境沒有單元測試,寫起來就是有個不是實在的感覺。首先你的專案和測試專案是分開的2個target 如果你需要在單元測試的專案中呼叫被測試的專案中的類 則必須你到被單元測試的那個類以及這個類所dependence的類...