我希望有一个单元测试类来测试类@ConfigurationProperties("...") MyConfig
的初始化,给定不同的配置属性集。
举例来说:
@SpringBootTest(classes = { MyConfig.class })
@DirtiesContext // to force re-initialization of context
class MyConfigTest {
@Autowired
MyConfig myConfig;
@Test
@UseProperties("my-config.prop1=foo") // Looking for something like this?
void test1() {
assertThat(myConfig).doesSomething(...);
}
@Test
@UseProperties("my-config.prop1=bar")
void test2() {
assertThat(myConfig).doesSomethingElse(...);
}
@Test
@UseProperties("my-config.prop1=foobar")
void test3() {
assertThat(myConfig).doesSomethingTotallyDifferent(...);
}
}
(显然,我完全编造了@UseProperties
注解,它只是为了解释我在寻找什么)。
1条答案
按热度按时间93ze6v8z1#
我在这个GitHub repo中找到了解决方案
test可以使用
ObjectMapper
Map的不同属性集。一个缺点是
ObjectMapper
不能识别Configuration
类的前缀(因为它不是作为bean加载的),所以您必须使用空字符串,或者不填写值并从yaml中删除缩进。