[英]How to Unit test Util class with dependency on other Util class method?
我有一個util類,它接受String jwtToken和Key鍵,並使用io.jsonwebtoken.jwts對jwt進行解碼。
但是,我無法測試這一點。 原因是,我無法模擬公鑰並傳遞給方法。 所以,該方法在Jwts.parser()斷開.serSigningKey(key)......
我嘗試模擬公鑰,但是這也沒有用,因為我將模擬數據傳遞給實際函數並獲取UnSupportedJwtException。
我能想到的一種方法是將將String轉換為Key的Util移動到Util輔助工具中進行測試並使用它並將轉換后的密鑰傳遞給方法。 但這有效,我不認為這是解決問題的正確方法。
Claims claims = null;
try {
claims = Jwts.parser().setSigningKey(key).parseClaimsJws(jwtToken).getBody();
} catch (UnsupportedJwtException | MalformedJwtException | ExpiredJwtException
| IllegalArgumentException ex) {
LOGGER.error("Error in JWT/JWS validation", ex);
}
LOGGER.debug("Return Claims: ", claims);
return claims;
} ```
您可以將Jwts.parser()提取為類的單獨字段,而不是直接在方法中調用此工廠方法。 然后你就可以用mock替換這個對象了
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.