我有一个@SpringBootTest,用于在服务器上执行集成测试。根据配置,我希望服务器的行为不同。配置本身由我的app逻辑内部的bean(scope = singleton)读取,并且它们通过@Value注释读取属性。
如何使用不同的配置设置执行相同的测试?我尝试编写不同的测试类,并使用@TestPropertySource(properties = XYZ)注释它们。但似乎这也会影响所有其他测试(由于单例范围?)。有没有办法在测试后重置属性?
重新指定我的问题:我想在测试期间使用不同的@Value属性配置我的bean,这个值应该只在整个特定测试执行期间有效。
感谢任何指示。
答案 0 :(得分:0)
我有一个web服务,它通过使用配置中的属性连接到其他web服务的客户端。与任何组织一样,我们有不同的环境。为了测试,我想点击测试env而不是本地。这是我仅为集成测试覆盖默认属性值的方法。通过这样做,我可以点击测试环境而不是默认的本地环境。
@SpringBootTest(value = {"eureka.client.enabled=false", // Don't start Eureka
"com.somepackage.webservicename.client.serviceUrl = http://nodename.envname:26730"})
希望这有帮助!