我编写了一个 spring-boot 测试并创建了一个自定义注释:
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@SpringBootTest
@AutoConfigureMockMvc
@ActiveProfiles("integration-test")
public @interface IntegrationTest {
String[] properties() default {};
}
如您所见,我定义了
properties
属性,以便可以覆盖这样的属性:
@IntegrationTest(properties = {"my.property=value"})
public class MyIntegrationTest {
// test code here
}
我没有任何额外的配置,我的属性值会自动放入
@SpringBootTest(properties = )
,这就是我真正想要实现的。
但是现在我想知道如何理解这个属性的值应该放在
@SpringBootTest(properties = )
中?
您应该用
properties
注释
@AliasFor
,如下所示:
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@SpringBootTest
@AutoConfigureMockMvc
@ActiveProfiles("integration-test")
public @interface IntegrationTest {
@AliasFor(annotation = SpringBootTest.class, attribute = "properties")
String[] properties() default {};
}