使用不同的属性

时间:2018-03-09 17:08:36

标签: spring-boot-test

我有一个@SpringBootTest,用于在服务器上执行集成测试。根据配置,我希望服务器的行为不同。配置本身由我的app逻辑内部的bean(scope = singleton)读取,并且它们通过@Value注释读取属性。

如何使用不同的配置设置执行相同的测试?我尝试编写不同的测试类,并使用@TestPropertySource(properties = XYZ)注释它们。但似乎这也会影响所有其他测试(由于单例范围?)。有没有办法在测试后重置属性?

重新指定我的问题:我想在测试期间使用不同的@Value属性配置我的bean,这个值应该只在整个特定测试执行期间有效。

感谢任何指示。

1 个答案:

答案 0 :(得分:0)

我有一个web服务,它通过使用配置中的属性连接到其他web服务的客户端。与任何组织一样,我们有不同的环境。为了测试,我想点击测试env而不是本地。这是我仅为集成测试覆盖默认属性值的方法。通过这样做,我可以点击测试环境而不是默认的本地环境。

@SpringBootTest(value = {"eureka.client.enabled=false", // Don't start Eureka
"com.somepackage.webservicename.client.serviceUrl = http://nodename.envname:26730"})

希望这有帮助!