簡體   English   中英

如何單獨測試Util類依賴於其他Util類方法?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM