SpringBoot 单元测试(一)SpringBootTest
SpringBootTest
- 描述: 该注解是用到类名上,表示自动启动加载类或指定某个或多个加载启动类,默认会加载当前module下的启动类。而启动类(如下) @SpringBootApplication public class TestApplication { public static void main(String[] args) { SpringApplication.run(TestApplication.class, args); } } 的@SpringBootApplication组合了多个注解,如@componentScan、@SpringBootConfiguration、@EnableAutoConfiguration。这些注解自动开启了自动扫描、依赖注入、自动配置等功能,而且main里的方法又加载了监听器、过滤器、拦截器等功能,具体查看SpringApplication.run方法的源码。
- 样例:
/** * SpringBootTestDemo * * @author orjrs * @date 2018-10-06 19:51 */ @RunWith(SpringRunner.class) //@SpringBootTest // 1 @SpringBootTest(classes = TestApplication.class) // 2 //@SpringBootTest(classes={TestApplication.class,XXX.class}) // 3 public class SpringBootTestDemo { // 1. 测试类会自动加载启动类,默认module下的启动类 // 2. 可以指定具体的启动类,且可以多个(3) // 4. SpringBoot 2.0+版本后,默认生产启动测试类, // 可以直接extends TestApplicationTests,这样就不用家@RunWith和@SpringBo0tTest注解 }
2.注解源码:
import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Inherited; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; import org.springframework.core.annotation.AliasFor; import org.springframework.test.context.BootstrapWith; @Target({ElementType.TYPE}) @Retention(RetentionPolicy.RUNTIME) @Documented @Inherited @BootstrapWith(SpringBootTestContextBootstrapper.class) public @interface SpringBootTest { @AliasFor("properties") String[] value() default {}; @AliasFor("value") String[] properties() default {}; Class<?>[] classes() default {}; SpringBootTest.WebEnvironment webEnvironment() default SpringBootTest.WebEnvironment.MOCK; public static enum WebEnvironment { MOCK(false), RANDOM_PORT(true), DEFINED_PORT(true), NONE(false); private final boolean embedded; private WebEnvironment(boolean embedded) { this.embedded = embedded; } public boolean isEmbedded() { return this.embedded; } } }
上一篇:
5款热门的远程控制软件,让你事半功倍
下一篇:
Nextday参数化单元测试