作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 util 类,它接受 String jwtToken 和 Key key 并使用 io.jsonwebtoken.jwts 解码 jwt。
但是,我无法对此进行测试。原因是,我无法模拟公钥并传递给该方法。因此,该方法在 Jwts.parser().serSigningKey(key) 处中断...
我尝试模拟公钥,但这也不起作用,因为我将模拟数据传递给真实函数并得到 UnSupportedJwtException。
我能想到的一种方法是将 String 转换为 Key 的 Util 移至 Util helper 中进行测试并使用它,并将转换后的 key 传递到方法中。然而,这确实有效,我认为这不是解决问题的正确方法。
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替换这个对象
关于java - 如何对依赖于其他 Util 类方法的 Util 类进行单元测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56401975/
我是一名优秀的程序员,十分优秀!