Springboot整合junit单元测试

主要介绍springboot整合junit进行单元测试


一、引入依赖

	<dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-test</artifactId>
    </dependency>
    <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
    </dependency>

二、编写测试类

代码如下(示例):
@RunWith(SpringRunner.class):运行器指定
SpringRunner.class的作用:
在Spring项目中的Test测试类要使用注入的类,比如@Autowired注入的类或者spring管理的bean的时候,测试类在运行前,需要spring容器运行起来,加上这个@RunWith(SpringRunner.class)注解,就是先运行起来spring容器,再开始运行测试类
@SpringBootTest:
作用是加载ApplicationContext,启动spring容器。使用@SpringBootTest后,Spring将加载所有被管理的bean,基本等同于启动了整个服务,此时便可以开始功能测试。
由于web服务是最常见的服务,且我们对于web服务的测试有一些特殊的期望,所以@SpringBootTest注解中,给出了webEnvironment参数指定了web的environment,该参数的值一共有四个可选值:
MOCK:此值为默认值,该类型提供一个mock环境,可以和@AutoConfigureMockMvc或@AutoConfigureWebTestClient搭配使用,开启Mock相关的功能。注意此时内嵌的服务(servlet容器)并没有真正启动,也不会监听web服务端口。
RANDOM_PORT:启动一个真实的web服务,监听一个随机端口。
DEFINED_PORT:启动一个真实的web服务,监听一个定义好的端口(从application.properties读取)。
NONE:启动一个非web的ApplicationContext,既不提供mock环境,也不提供真实的web服务。
注:如果当前服务的classpath中没有包含web相关的依赖,spring将启动一个非web的ApplicationContext,此时的webEnvironment就没有什么意义了。

@SpringBootTest(classes = Application.class)
@RunWith(SpringRunner.class)
public class test {

    @Test
    public void test1(){
        System.out.println("this is test1");
    }
}

总结

以上就是今天要讲的内容,本文仅仅简单介绍了springboot整合junit的使用

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐