如何对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/

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Spring Boot项目中,可以通过创建一个新的单元测试类来进行单元测试。在这个类中,你需要添加`@SpringBootTest`注解来表示当前单元测试运行在Spring Boot环境中。同时,你还需要导入相关的依赖和类,例如`org.junit.jupiter.api.Assertions`和`org.junit.jupiter.api.Test`。在这个单元测试类中,你可以编写测试方法来测试你的业务代码。例如,你可以使用`@Test`注解来标记一个测试方法,并在方法中编写测试逻辑。在测试方法中,你可以使用断言来验证你的代码的预期行为。例如,你可以使用`Assertions.assertNotNull()`来验证某个对象不为空。以下是一个示例的单元测试类: ```java import com.example.demo.mapper.UserMapper; import com.example.demo.model.UserInfo; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; @SpringBootTest class UserMapperTest { @Autowired private UserMapper userMapper; @Test void getUserById() { UserInfo userInfo = userMapper.getUserById(1); Assertions.assertNotNull(userInfo); } } ``` 在这个示例中,我们使用`@Autowired`注解来自动注入`UserMapper`对象,并在`getUserById()`方法中调用`userMapper.getUserById()`方法来获取用户信息。然后,我们使用`Assertions.assertNotNull()`来验证获取到的用户信息不为空。这样,我们就可以通过运行这个单元测试类来测试`UserMapper`的功能。 #### 引用[.reference_title] - *1* *2* *3* [【SpringBootSpringBoot单元测试](https://blog.csdn.net/m0_46468731/article/details/125969337)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值