使用System.getProperty(String)测试类

时间:2013-11-26 15:28:03

标签: java junit

我已经编写了一些实用工具类来使用System.getProperty("user.home"),并在其中添加了一个基于System.getProperty("os.name")的特定路径。

如何在我准备的所有操作系统配置中测试我的代码并在单个JUnit测试类中执行这些测试?

我在考虑一个SystemPropertyProvider,它会像Java 8的Clock或Guava的Stopwatch,但我不确定它是最好的方法。

2 个答案:

答案 0 :(得分:4)

我会重构实用程序类以通过依赖注入获取Properties。在主代码中,给它System.getProperties()。在测试中,给它自己的Properties实例和测试值。

(如果其中一个系统属性可能发生变化,请小心 - 在这种情况下,您每次都需要检索一个新的Properties

答案 1 :(得分:1)

您可以指定系统属性,然后重置。您可以使用System Rules库来安全地重置系统属性。