如何模拟系统类进行测试?

时间:2014-08-29 08:31:35

标签: spring unit-testing integration-testing spring-batch spring-boot

我有一个代码来测试哪个取决于环境变量集的值。 如何模拟系统环境变量的设置? 我不想在我的测试类中执行System.setProperty(),这可能会将变量添加到环境中。

我只是想模拟设置和测试。我该如何嘲笑?

感谢。

1 个答案:

答案 0 :(得分:3)

如果您的代码确实依赖于System属性,我建议您重构它以取决于Spring Environment。然后你可以在Spring测试中使用(使用Spring Boot)@IntegrationTest,例如(来自the docs):

@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = MyApplication.class)
@IntegrationTest({"foo=bar"})
public class SomeIntegrationTests {

// ...

}