快捷搜索: 王者荣耀 脱发

如何对SpringBoot项目开展单元测试

概念:

1. 单元测试(unit testing),是指对软件中的最小可测试单元进行检查和验证。在Java中单元测试的最小单元是类。

2. 单元测试是开发者编写的一小段代码,用于检验被测代码的一个很小的、很明确的功能是否正确。执行单元测试,就是为了证明这 段代码的行为和我们期望是否一致。

  1. 添加依赖与配置

配置文件,集成了web启动器、mybatis启动器的集成、及单元测试的启动器集成。

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-test</artifactId>

<scope>test</scope>

</dependency>

  1. Controller层测试

在需要测试的controlller类中点击测试类代码,然后如下图操作

图一

NEXT操作,选择你需要测试的方法,一般这里不需要更改测试类名,存储路径。

图二

生成的测试类中添加测试注解:

@SpringBootTest>:获取启动类,加载配置,寻找主配置启动类(被 @SpringBootApplication 注解的)

@RunWith(SpringRunner.class)>:让JUnit运行Spring的测试环境,获得Spring环境的上下文的支持 @AutoConfigureMockMvc:用于自动配置MockMvc,配置后MockMvc类可以直接注入,相当于new MockMvc @Before:初始化方法 ,对于每一个测试方法都要执行一次。

代码如下图所示

图三

本人建议不要使用@SpringBootTest注解,这样测试的时候的会遇到检测不到测试类是哪个,解决方法是使用@ContextConfiguration(classes={?}),添加@WebMvcTest(?.class)可以解决如下遇到的问题。

图四

2.MockMVC的基本步骤

(1)mockMvc.perform执行一个请求。 (2) MockMvcRequestBuilders.get(“XXX”)构造一个请求。 (3) ResultActions.param添加请求传值 (4) ResultActions.accept()设置返回类型 (5) ResultActions.andExpect添加执行完成后的断言。 (6) ResultActions.andDo添加一个结果处理器,表示要对结果做点什么事情,比如处使用print()输出整个响应结果信息。 (7) ResultActions.andReturn表示执行完成后返回相应的结果。

3.参考网站

https://www.jianshu.com/p/2e84bd5dc9d6 http://fanlychie.github.io/post/spring-boot-testing.html https://docs.spring.io/spring-boot/docs/2.3.0.RELEASE/reference/html/spring-boot-features.html#boot-features-testing http://mybatis.org/spring-boot-starter/mybatis-spring-boot-test-autoconfigure/

经验分享 程序员 微信小程序 职场和发展