Я пытаюсь написать тестовый пример для метода расшифровки здесь.
private static Codec codec;
static {
try {
codec = new Codec(encryptionType, encryptionKey, false, true, false);
} catch (CodecException e) {
throw new RuntimeException("Codec initialisation failed", e);
}
}
public static String decrypt(final String toDecrypt) throws CodecException {
String decrypted = codec.decryptFromBase64(toDecrypt);
if (decrypted.endsWith(":")) {
decrypted = decrypted.substring(0, decrypted.length() - 1);
}
return decrypted;
}
Тестовый пример:
@Mock
private Codec codec;
@Test
public void test_decrypt_Success() throws CodecException {
when(codec.decryptFromBase64(TestConstants.toDecrypt)).thenReturn(TestConstants.decrypted);
assertEquals(DocumentUtils.decrypt(TestConstants.toDecrypt), TestConstants.decrypted);
}
Поскольку это статический метод, я не могу ввестиэкземпляр класса в наборе тестов и макет его кодека.Приведенный выше код выдает ошибку из библиотеки кодеков в assert, как и ожидалось.
Каков ваш подход к тестированию статических методов, подобных этому?Или я вообще не должен писать тесты для этого?