2012-08-13 58 views
0

Tomcat以vm参数启动:-Dserver.ref=test。此参数的值确定应用程序要读取的属性文件的类型。单元测试也取决于这个属性的值,并且需要与Tomcat中设置的值匹配。如何读取-Dserver.ref VM参数

我想我只需要在单元测试中自己设置此属性?我不认为有机制来检查Tomcat中的值-Dserver.ref是什么?

1

回答

2

这应该工作:

final String ref = System.getProperty("server.ref"); 

ref应等于"test"

+0

假设测试在同一个JVM中运行? – user701254 2012-08-13 13:49:54

+1

@ user701254:您想从另一个JVM读取此标志吗?如果是这样,请尝试使用'jmap'或通过JMX连接到该JVM。如果你有兴趣,我会找到一些代码示例。 – 2012-08-13 13:55:41

+0

我可以看看它,谢谢 – user701254 2012-08-13 14:06:43

3

您应该将读取系统属性的代码放入独立的类中,如RealSystemPropertyReader,它实现了一个接口SystemPropertyReader。该类的默认实现将使用System.getProperty()读取该属性。您的类MockSystemPropertyReader的模拟版本将用于单元测试,并会返回您告诉它返回的任何内容。

+0

+1这是正确的答案。依赖于REAL系统属性的测试不是单元测试。 – 2012-08-13 22:22:20