SpringBoot-单元测试

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringBoot-单元测试相关的知识,希望对你有一定的参考价值。

SpringBoot-单元测试

SpringBoot-单元测试

在SpringBoot中提供了单元测试的组件,它类似于Spring中的单元测试,无需加载配置文件,即可从容器中获取对象的实例。

首先在pom文件中导入以下依赖:

<!--springboot程序测试依赖,如果是自动创建项目默认添加-->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>

然后在test文件夹中创建测试类,在测试类上加上如下注解:

@Runwith(SpringRunner.class)
@SpringBootTest(classes=Application.class)

在该类中就可以使用@Autowired和@Test进行测试

packagecn.rayfoo.demo;
?
importcn.rayfoo.Application;
importcn.rayfoo.config.JDBCProperties;
importorg.junit.jupiter.api.Test;
importorg.junit.runner.RunWith;
importorg.springframework.beans.factory.annotation.Autowired;
importorg.springframework.boot.test.context.SpringBootTest;
importorg.springframework.test.context.junit4.SpringRunner;
?
@RunWith(SpringRunner.class)
@SpringBootTest(classes=Application.class)
classDemoApplicationTests{
?
   @Autowired
   privateJDBCPropertiesjdbcProperties;
?
   @Test
   voidcontextLoads() {
       System.out.println(jdbcProperties);
  }
?
}
?

当然,我们还可以使用@After@Before注解

Junit基本注解介绍

@BeforeClass 在所有测试方法前执行一次,一般在其中写上整体初始化的代码

@AfterClass 在所有测试方法后执行一次,一般在其中写上销毁和释放资源的代码

@Before 在每个测试方法前执行,一般用来初始化方法(比如我们在测试别的方法时,类中与其他测试方法共享的值已经被改变,为了保证测试结果的有效性,我们会在@Before注解的方法中重置数据)

@After 在每个测试方法后执行,在方法执行完成后要做的事情

@Test(timeout = 1000) 测试方法执行超过1000毫秒后算超时,测试将失败

@Test(expected = Exception.class) 测试方法期望得到的异常类,如果方法执行没有抛出指定的异常,则测试失败

@Ignore(“not ready yet”) 执行测试时将忽略掉此方法,如果用于修饰类,则忽略整个类

@Test 编写一般测试用例

@RunWith 在JUnit中有很多个Runner,他们负责调用你的测试代码,每一个Runner都有各自的特殊功能,你要根据需要选择不同的Runner来运行你的测试代码。

如果我们只是简单的做普通Java测试,不涉及Spring Web项目,你可以省略@RunWith注解,这样系统会自动使用默认Runner来运行你的代码。

以上就是我们再SpringBoot2.X 中的测试过程示例( 当然也是用 SpringBoot 1.X ),是不是可以说 so easy?

以上是关于SpringBoot-单元测试的主要内容,如果未能解决你的问题,请参考以下文章

springboot单元测试

SpringBoot项目单元测试

java中springboot集成junit编写单元测试(实战+坑)

jacoco+maven+sonar+springboot 单元测试代码覆盖率统计

SpringBoot与单元测试JUnit的结合

SpringBoot与单元测试JUnit的结合