![微服务从小白到专家:Spring Cloud和Kubernetes实战](https://wfqqreader-1252317822.image.myqcloud.com/cover/981/41202981/b_41202981.jpg)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
3.8 Spring Boot项目测试
本节我们介绍基于Spring Boot的项目测试组件spring-boot-starter-test,在项目中引入该组件的步骤如下。
第一步,在项目的pom.xml文件中引入依赖项,具体代码如下:
![](https://epubservercos.yuewen.com/91A00C/21440188001525406/epubprivate/OEBPS/Images/215-2.jpg?sign=1739278341-8VE0qKsDQ6CGL4tHBhLwutt0Mm2tOSft-0-4762cb968a9c1ff5138ba351dae0d981)
spring-boot-starter-test提供了测试所需的功能特性,h2是一个内存数据库,通过执行SQL语句模拟数据库操作。
第二步,引入DataJpaTest注解,具体代码如下:
![](https://epubservercos.yuewen.com/91A00C/21440188001525406/epubprivate/OEBPS/Images/215-3.jpg?sign=1739278341-W5SwjRzl7NLBAm4DrSYWRMilBnCyPmbZ-0-56de0440311d666cc48517583bc7e379)
![](https://epubservercos.yuewen.com/91A00C/21440188001525406/epubprivate/OEBPS/Images/216-1.jpg?sign=1739278341-Zq3svVQ77xpkgfUMCbj7ml7gsygkcq56-0-583ee47523d9a5fd15da34cc3d0af821)
@DataJpaTest主要为测试JPA做底层支持,包括但不限于以下功能:
• 配置H2为数据库。
• SQL的日志功能。
• 执行@EntityScan。
• 配置Hibernate、Spring Data及DataSource。
第三步,创建Mock Bean,此处Mock的含义可以理解为“偷梁换柱”,即使用假的Bean模拟真实的Bean注入测试对象中。在service层进行单元测试时,无需使用真实的数据库Repository对象,可以采用这种Mock Bean的方式,示例代码如下:
![](https://epubservercos.yuewen.com/91A00C/21440188001525406/epubprivate/OEBPS/Images/216-2.jpg?sign=1739278341-zG3OBfxeoBxZdtpLOOY41ps6sgMsue0k-0-c5ee5a38909fe601c2e6c0b7d7e7ab54)
第四步,使用@WebMvcTest注解测试CouponTemplateController类中的addTemplate()方法,具体代码如下:
![](https://epubservercos.yuewen.com/91A00C/21440188001525406/epubprivate/OEBPS/Images/217-1.jpg?sign=1739278341-rLDafzTuUs6DOrjac5SgEKqIs559FBVV-0-6781461cb2099d66f35b960c13919fae)