在【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等。