Java EncryptionInitializationException使用PowerMockRunner而不是MockitoJUnitRunner

Java EncryptionInitializationException使用PowerMockRunner而不是MockitoJUnitRunner,java,junit,mockito,junit4,powermockito,Java,Junit,Mockito,Junit4,Powermockito,当我使用MockitoJunitRunner测试下面的函数时,它工作正常。但是,当我使用PowerMockRunner运行相同的测试时,会出现以下异常: org.jasypt.exceptions.EncryptionInitializationException: java.security.NoSuchAlgorithmException: PBEWithMD5AndDES SecretKeyFactory not available 我想知道为什么在我使用PowerMockRunner时

当我使用MockitoJunitRunner测试下面的函数时,它工作正常。但是,当我使用PowerMockRunner运行相同的测试时,会出现以下异常:

org.jasypt.exceptions.EncryptionInitializationException:

java.security.NoSuchAlgorithmException: PBEWithMD5AndDES SecretKeyFactory not available
我想知道为什么在我使用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>

朱尼特
朱尼特
4.12
org.powermock
powermock-module-junit4
1.6.5

除测试中的类之外,还添加注释
@PrepareForTest({Encryptor.class})
除测试中的类之外,还添加注释
@PrepareForTest({Encryptor.class})
我正面临着这个问题,但不幸的是这个解决方案帮不了我。通过在我的类中添加
@PowerMockIgnore(“javax.crypto.*)
解决了这个问题,如下链接所示:


我面临着确切的问题,但不幸的是,这个解决方案帮不了我。通过在我的类中添加
@PowerMockIgnore(“javax.crypto.*)
解决了这个问题,如下链接所示:


PowerMockRunner使用自己的类加载器,以便重写被测类的字节码。我的直觉是,通过使用不同的类加载器,您会干扰SecretKeyFactory的加载。我只是对PowerMock或它的类加载器层次结构了解不够,无法确定这一点。添加注释@PrepareForTest({Encryptor.class})是有效的。我刚刚添加了ClassUnderTest.class;结果它失败了。还需要添加Encryptor.class.很高兴听到!考虑把它作为你自己问题的答案,然后接受它来解决你的问题。其他读者以后甚至会投票支持它!PowerMockRunner使用自己的类加载器,因此它可以重写被测试类的字节码。我的直觉是,通过使用不同的类加载器,您会干扰SecretKeyFactory的加载。我只是对PowerMock或它的类加载器层次结构了解不够,无法确定这一点。添加注释@PrepareForTest({Encryptor.class})是有效的。我刚刚添加了ClassUnderTest.class;结果它失败了。还需要添加Encryptor.class.很高兴听到!考虑把它作为你自己问题的答案,然后接受它来解决你的问题。其他读者以后甚至会投票支持它!
    <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>