我正在使用 intellij 运行器运行单元测试。
在应用程序的 main 方法中,我们将 keystore 设置为值:
/home/oozen/workspace/wakeup/src/main/resources/Certif.p12
public void run(String... args){
System.setProperty("javax.net.ssl.keyStore", vodafoneKeystore);
System.setProperty("javax.net.ssl.keyStorePassword", vodafoneKeystorePassword);
logger.info(" **************** WakeUpApp **************** ");
logger.info("vodafoneKeystore is set to {}", vodafoneKeystore);
}
这在生产中可以正常工作。但当我使用 intellij 运行时,单元测试不是这样。
在测试中,当我记录 getProperty 的结果时,我看到了我们在代码中设置的内容。
在我的测试方法开始时,我可以看到值设置正确:
logger.info(" ################## KEYSTORE : {}", System.getProperty("javax.net.ssl.keyStore"));
################## KEYSTORE : /home/oozen/workspace/wakeup/src/main/resources/Certif.p12
但是在握手过程中,我看到了消息:no certificate found
导致身份验证失败。
关于为什么的任何想法?
我知道我可以使用 arg 运行测试:......-Djavax.net.ssl.keyStore=...
但我不想...... :)
此外,@Thiru 展示了一种在外部设置它的方法,但我的目标是能够从代码中设置它并能够在单元测试中依赖它。
提前致谢