我是靠谱客的博主 拉长柚子,最近开发中收集的这篇文章主要介绍简单的SpringMvc单元测试,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

进行简单的单元测试,个人理解欢迎指正。

1.添加依赖

<!--spring-test,spring测试依赖-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>5.3.16</version>
</dependency>
<!--junit5依赖-->
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>5.8.2</version>
<scope>test</scope>只用于测试
</dependency>
<!--lombok-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.22</version>
<scope>provided</scope>依赖使用范围,编译,运行测试,不参与打包
</dependency>
<!--logback日志-->
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.11</version>
<scope>test</scope>
</dependency>

2.创建测试类

在测试类中添加springmvc配置时可以使用

1.@SpringJUnitWebConfig(WebInit.class)//配置文件的地址

2.@SpringJUnitWebConfig(locations = “classpath:spring/*.xml”)//spring目录下的所有xml配置文件

@SpringJunitWebConfig注解中包含@ContextConfiguration 和@WebAppConfiguration所以不用添加后两个注解。

MockMvc是SpringMvc单元测试的独立测试,可以在不使用/开启TomCat时测试Controller中的各种请求和方法。

package com;
import com.ccity.config.WebInit;
import com.ccity.utils.JwtUtils;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.junit.jupiter.web.SpringJUnitWebConfig;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.MockMvcBuilder;
import org.springframework.test.web.servlet.MvcResult;
import org.springframework.test.web.servlet.ResultActions;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
import org.springframework.test.web.servlet.setup.MockMvcBuilders;
import org.springframework.web.context.WebApplicationContext;
/**
* @author 86155
* @version 17
* @title:ccity
* @projectName smvc2022
* @description: TODO
* @date 2022/4/1021:26
* @since 1.0
*/
@SpringJUnitWebConfig(WebInit.class)//获得SpringMvc的配置和Web的配置
public class JwtOk {
@Autowired
private WebApplicationContext wctx;//获取SpringMvc容器
private MockMvc mm;//用于web独立测试,相当于服务器
@Test @DisplayName("查看列出所有控制器Bean")
public void
t1(){
for (String n: wctx.getBeanDefinitionNames()){
System.out.println(n);
}
System.out.println("-------------------");
System.out.println(wctx.getApplicationName());
}
@BeforeEach//在执行测试方法前初始化服务器测试类。
public void init(){
mm= MockMvcBuilders.webAppContextSetup(wctx).build();//实例化类org.springframework.test.web.servlet.MockMvc@13a37e2a
}
@Test
public void t2(){
System.out.println(mm);
}
@Test
public void t3() throws Exception {
ResultActions action = mm.perform(MockMvcRequestBuilders.post("/admin/login"));//通过MockMvc进行http请求测试
MvcResult resul = action.andReturn();//获取请求结果
System.out.println(resul.getResponse().getContentAsString());//打印结果
}
}

常用注解:

@BeforeEach:在每个单元测试方法执行前都执行一遍
@BeforeAll:在每个单元测试方法执行前执行一遍(只执行一遍
@DisplayName("商品入库测试"):用于指定单元测试的名称
@Disabled:当前单元测试设置为无效,即单元测试时跳过该测试
@RepeatedTest(n):重复性测试,即执行n次
@ParameterizedTest:参数化测试
@ValueSource(ints={1,2,3}):参数化测试提供数据

最后

以上就是拉长柚子为你收集整理的简单的SpringMvc单元测试的全部内容,希望文章能够帮你解决简单的SpringMvc单元测试所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(60)

评论列表共有 0 条评论

立即
投稿
返回
顶部