如何对依赖于其他Util类方法的Util类进行单元测试?

时间:2019-05-31 21:37:02

标签: java junit jwt junit4 claims

我有一个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;
   } ```

1 个答案:

答案 0 :(得分:0)

您可以将Jwts.parser()提取为类的单独字段,而不是直接在您的方法中调用此工厂方法。然后您将可以用模拟代替该对象

相关问题