我正在使用intellij运行程序进行单元测试。
在应用程序的主要方法中,我们将密钥库设置为以下值:
/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还显示了一种在外部进行设置的方法,但我的目标是能够从代码中进行设置,并能够在单元测试中依赖它。
预先感谢