在利用Spring Boot Testing东西中提到:
在测试代码之间只管做到设置共用。 … 可以或许有效操作Spring TestContext Framework的缓存机制,ApplicationContext只会建设一次,后头的测试会直接用已建设的谁人,加速测试代码运行速度。
本章将罗列几种共享测试设置的要领
@Configuration
我们可以将测试设置放在一个@Configuration里,然后在测试@SpringBootTest或ContextConfiguration中引用它。
PlainConfiguration:
@SpringBootApplication(scanBasePackages = "me.chanjar.shareconfig") public class PlainConfiguration { }
FooRepositoryIT:
@SpringBootTest(classes = PlainConfiguration.class) public class FooRepositoryIT extends ...
@Configuration on interface
也可以把@Configuration放到一个interface上。
PlainConfiguration:
@SpringBootApplication(scanBasePackages = "me.chanjar.shareconfig") public interface InterfaceConfiguration { }
FooRepositoryIT:
@SpringBootTest(classes = InterfaceConfiguration.class) public class FooRepositoryIT extends ...
Annotation
也可以操作Spring的Meta-annotations及自界说机制,劳务派遣管理系统,提供本身的Annotation用在测试设置上。
PlainConfiguration:
@Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @SpringBootApplication(scanBasePackages = "me.chanjar.shareconfig") public @interface AnnotationConfiguration { }
FooRepositoryIT:
@SpringBootTest(classes = FooRepositoryIT.class) @AnnotationConfiguration public class FooRepositoryIT extends ...
参考文档