MockitoJunitRunner를 사용하여 아래의 함수를 테스트 할 때 예상대로 작동합니다. 내가 PowerMockRunner를 사용하여 동일한 테스트를 실행하고 때 나는 다음받을 예외 :EncryptionInitializationException MockitoJUnitRunner가 아닌 PowerMockRunner를 사용합니다.
org.jasypt.exceptions.EncryptionInitializationException : 그것은 예외 때를 던졌습니다 왜
java.security.NoSuchAlgorithmException: PBEWithMD5AndDES SecretKeyFactory not available
functionToBeTested() {
Encryptor.encrypt(this.getIgvToken(), "IGVKEY123");
}
을 궁금 PowerMockRunner를 사용하십시오. 내 의존성은 다음과 같습니다.
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-module-junit4</artifactId>
<version>1.6.5</version>
</dependency>
PowerMockRunner는 자신의 클래스 로더를 사용합니다. 내 직감은 다른 클래스 로더를 사용하면 SecretKeyFactory의 로딩을 방해한다는 것입니다. PowerMock 또는 클래스 로더 계층 구조에 대해 충분히 알지 못합니다. –
주석 추가 ** @ PrepareForTest ({Encryptor.class}) ** 작업. 방금 ClassUnderTest.class를 추가했습니다. 그 결과로 실패했습니다. 또한 Encryptor.class를 추가해야합니다. – ashy143
듣기 좋다! 이를 자신의 질문에 대한 대답으로 추가 한 다음이를 받아 들여 문제를 해결 된 것으로 표시하십시오. 다른 독자들도 나중에 투표 할 수 있습니다! –