我已经编写了一些实用工具类来使用System.getProperty("user.home")
,并在其中添加了一个基于System.getProperty("os.name")
的特定路径。
如何在我准备的所有操作系统配置中测试我的代码并在单个JUnit测试类中执行这些测试?
我在考虑一个SystemPropertyProvider
,它会像Java 8的Clock
或Guava的Stopwatch
,但我不确定它是最好的方法。
答案 0 :(得分:4)
我会重构实用程序类以通过依赖注入获取Properties
。在主代码中,给它System.getProperties()
。在测试中,给它自己的Properties
实例和测试值。
(如果其中一个系统属性可能发生变化,请小心 - 在这种情况下,您每次都需要检索一个新的Properties
)
答案 1 :(得分:1)
您可以指定系统属性,然后重置。您可以使用System Rules库来安全地重置系统属性。