83. Spring Boot 1.4单元测试【从零开始学Spring Boot】

时间:2023-03-09 16:48:52
83. Spring Boot 1.4单元测试【从零开始学Spring Boot】

在【27. Spring Boot Junit单元测试】中讲过1.3版本的单元测试方式,这里说说1.4和1.3有什么区别之处?

在1.3中单元测试这样子的类似代码:

//// SpringJUnit支持,由此引入Spring-Test框架支持!

@RunWith(SpringJUnit4ClassRunner.class)

//// 指定我们SpringBoot工程的Application启动类

@SpringApplicationConfiguration(classes = App.class)

///由于是Web项目,Junit需要模拟ServletContext,因此我们需要给我们的测试类加上@WebAppConfiguration。

@WebAppConfiguration

public class HelloServiceTest {

}

那么在1.4中SpringApplicationConfiguration标记为过时了,所以官方就不建议这么使用了,那么在1.4中单元测试怎么使用呢?类似代码如下:

@RunWith(SpringRunner.class)

@SpringBootTest(webEnvironment=WebEnvironment.RANDOM_PORT)

public class MyTest{

// ...

}

其中@RunWith(SpringRunner.class): 告诉Junit运行使用Spring 的单元测试支持;

SpringRunner是SpringJunit4ClassRunner新的名称,只是视觉上看起来更简单了。

@SpringBootTest : 该注解可以在一个测试类指定运行Spring Boot为基础的测试。

当然不仅仅就这么简单了,1.4在单元测试还有另外一些特性,大家可以在去官方看看文档,比如还有@JsonTest,@DataJpaTest等。