Как выполнить юнит-тест класса Util с зависимостью от другого метода класса Util? - PullRequest
0 голосов
/ 01 июня 2019

У меня есть класс util, который берет строковый jwtToken и ключ Key и декодирует jwt с помощью io.jsonwebtoken.jwts.

Однако я не могу это проверить. Причина в том, что я не могу смоделировать открытый ключ и перейти к методу. Итак, метод ломается в Jwts.parser (). SerSigningKey (key) ...

Я попытался смоделировать Открытый ключ, но это тоже не сработало, так как я передаю ложные данные в реальную функцию и получаю UnSupportedJwtException.

Один из способов, который я могу придумать, - это переместить Util, который преобразует String в Key, в помощника 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 голосов
/ 01 июня 2019

Вы можете извлечь Jwts.parser () как отдельное поле вашего класса, вместо того, чтобы вызывать этот метод фабрики непосредственно в вашем методе. Тогда вы сможете заменить этот объект на макет

...