SpringBoot单元测试

一、pom引入

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-test</artifactId>
    <scope>test</scope>
</dependency>

二、常用注解

  • @RunWith(SpringRunner.class)

    JUnit运行使用Spring的测试支持。SpringRunner是SpringJUnit4ClassRunner的新名字,这样做的目的
    仅仅是为了让名字看起来更简单一点。

  • @SpringBootTest

    该注解为SpringApplication创建上下文并支持Spring Boot特性,其webEnvironment提供如下配置:

    Mock-加载WebApplicationContext并提供Mock Servlet环境,嵌入的Servlet容器不会被启动。

    RANDOM_PORT-加载一个EmbeddedWebApplicationContext并提供一个真实的servlet环境。嵌入的Servlet容器将被启动并在一个随机端口上监听。

    DEFINED_PORT-加载一个EmbeddedWebApplicationContext并提供一个真实的servlet环境。嵌入的Servlet容器将被启动并在一个默认的端口上监听
    (application.properties配置端口或者默认端口8080)。

    NONE-使用SpringApplication加载一个ApplicationContext,但是不提供任何的servlet环境。

  • @MockBean

    在你的ApplicationContext里为一个bean定义一个Mockito mock。

  • @SpyBean

    定制化Mock某些方法。使用@SpyBean除了被打过桩的函数,其它的函数都将真实返回。

  • @WebMvcTest

三、示例

@RunWith(SpringRunner.class)
@SpringBootTest(classes = 入口类名.class, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
public class BicService {
    @Test
    public void test(){
  }
}    

  

原文地址:https://www.cnblogs.com/anyanpeng/p/15016099.html