springBoot单元测试-模拟MVC测试

1)模拟mvc测试,和基础测试是一样的, 都需要在pom文件中引入junit的支持。

  略

2)编写测试类 Application1TestMVC

  在类头上除啦加入之前的@RunWith(SpringRunner.class)、@RunWith(SpringRunner.class) 之外还要加入新的注解

  @AutoConfigureMockMvc // 注入MockMvc (当然你实在不想加也行,有其他办法 , 不过我不想说,麻烦)
  1 package com.cx.springboot;
  2
  3 import java.util.Date;
  4
  5 import org.junit.Test;
  6 import org.junit.runner.RunWith;
  7 import org.springframework.beans.factory.annotation.Autowired;
  8 import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
  9 import org.springframework.boot.test.context.SpringBootTest;
 10 import org.springframework.http.MediaType;
 11 import org.springframework.mock.web.MockHttpServletResponse;
 12 import org.springframework.test.context.junit4.SpringRunner;
 13 import org.springframework.test.web.servlet.MockMvc;
 14 import org.springframework.test.web.servlet.MvcResult;
 15 import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
 16
 17 import com.alibaba.fastjson.JSON;
 18 import com.cx.springboot.hello1.model.UserModel;
 19
 20 @RunWith(SpringRunner.class)
 21 @SpringBootTest
 22 @AutoConfigureMockMvc // 注入MockMvc
 23 public class Application1TestMVC {
 24
 25     @Autowired
 26     private MockMvc mvc;
 27
 28     /**
 29      *
 30      * @throws Exception
 31      * @创建时间 2018年7月13日
 32      * @功能描述  通过链接传值 , 接受string 返回值
 33      */
 34     @Test
 35     public void testString() throws Exception {
 36         //准备请求url  不用带ip、端口、项目名称等 直接写接口的映射地址就可以了
 37         String url = "/app/get2/zhangsan/1";
 38
 39         /* 构建request 发送请求GET请求
 40          * MockMvcRequestBuilders 中有很多 请求方式。像get、post、put、delete等等
 41          */
 42         MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.get(url)
 43                 .accept(MediaType.APPLICATION_JSON)) // 断言返回结果是json
 44                 .andReturn();// 得到返回结果
 45
 46         MockHttpServletResponse response = mvcResult.getResponse();
 47         //拿到请求返回码
 48         int status = response.getStatus();
 49         //拿到结果
 50         String contentAsString = response.getContentAsString();
 51
 52         System.err.println(status);
 53         System.err.println(contentAsString);
 54     }
 55
 56
 57
 58     /**
 59      *
 60      * @throws Exception
 61      * @创建时间 2018年7月13日
 62      * @功能描述  传递header ,接受 返回值
 63      */
 64     @Test
 65     public void headerTest() throws Exception {
 66         // uri
 67         String uri = "/app/get4";
 68
 69         MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.get(uri)
 70                 .header("token", "asd123")
 71                 .header("name", "zhangsan11")
 72                 .accept(MediaType.APPLICATION_JSON)) // 断言返回结果是json
 73                 .andReturn();// 得到返回结果
 74
 75         MockHttpServletResponse response = mvcResult.getResponse();
 76         //拿到请求返回码
 77         int status = response.getStatus();
 78         //拿到结果
 79         String contentAsString = response.getContentAsString();
 80
 81         System.err.println(status);
 82         System.err.println(contentAsString);
 83     }
 84     /**
 85      *
 86      * @throws Exception
 87      * @创建时间 2018年7月13日
 88      * @功能描述  传递post请求和 bean类型对象 ,接受 返回值
 89      */
 90     @Test
 91     public void postTest() throws Exception {
 92         // uri
 93         String uri = "/app/get3";
 94
 95         UserModel userModel = new UserModel("张三", 11, new Date(), "abc123");
 96
 97         MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.post(uri)
 98                 .contentType(MediaType.APPLICATION_JSON_UTF8)
 99                 .content(JSON.toJSONString(userModel))
100                 .accept(MediaType.APPLICATION_JSON)) // 断言返回结果是json
101                 .andReturn();// 得到返回结果
102
103         MockHttpServletResponse response = mvcResult.getResponse();
104         //拿到请求返回码
105         int status = response.getStatus();
106         //拿到结果
107         String contentAsString = response.getContentAsString();
108
109         System.err.println(status);
110         System.err.println(contentAsString);
111     }
112 }

原文地址:https://www.cnblogs.com/cx987514451/p/9304525.html

时间: 2024-10-09 03:23:53

springBoot单元测试-模拟MVC测试的相关文章

Angular单元测试与E2E测试

本文介绍了Angular单元测试和E2E测试的配置与测试方法.示例APP使用Angular 7 CLI创建,已配置好基础测试环境,生成了测试样例代码.默认,Angular单元测试使用Jasmine测试框架和Karma测试运行器,E2E测试使用Jasmine测试框架和Protractor端到端测试框架. 配置单元测试 Jasmine是一个用于测试JavaScript的行为驱动开发框架,不依赖于任何其他JavaScript框架.Karma是测试运行器,为开发人员提供了高效.真实的测试环境,支持多种浏

Python 单元测试 & 文档测试

1.1   单元测试 1.1.1   单元测试编写 单元测试是用来对一个模块.一个函数或者一个类来进行正确性检验的测试工作. 编写一个Dict类,这个类的行为和dict一致,但是通过属性来访问. >>> d = Dict(a=1, b=2) >>> d['a'] 1 >>> d.a 1 class dict编写如下: [[email protected] python]# cat mydict.py #!/usr/bin/python # -*- co

Visual Studio 单元测试之四---Generic测试

原文:Visual Studio 单元测试之四---Generic测试 这里的Generic我觉得理解为外部测试更合适.因为在这种测试模式下Visual Studio只是启动一个外部的程序,然后通过返回值(0:Passed,其他值:failed)来判断运行结果. 到目前为止,我还没有想到它的具体用途,可能微软就是为了兼容其他测试工具吧.比如把NUint作为外部程序来调用,让它跑一些测试用例. 创建Generic测试: Add->Generic Test如下图:在第一个输入框中写入要运行的外部程序

Visual Studio 单元测试之五---数据库测试

原文:Visual Studio 单元测试之五---数据库测试 数据库的单元测试主要是测试数据库中的数据是否符合特定的条件,Visual Studio 2010支持下面几种数据的单元测试类型(Visual Studio 2008 不支持数据库测试): 类型 说明 Data Checksum 对数据进行Checksum检验 Empty ResultSet 测试执行的SQL语句返回结果集是否为空 Execution Time 测试执行时间 Expected Schema 测试结果集中的列和数据类型是

Visual Studio 单元测试之三---压力测试

原文:Visual Studio 单元测试之三---压力测试 我们都知道大名鼎鼎的LoadRuner,但是很少有人知道Visual Studio自带的Test也可以做些简单的压力测试,下面我们就介绍一下如何利用Visual Studio进行压力测试. 此文是上一篇博文:Visual Studio 单元测试之一---普通单元测试的后续篇章.如果读者对Visual Studio的单元测试不熟悉的话,请先参看上一篇.http://blog.csdn.net/tjvictor/archive/2011/

在Android studio中进行单元测试和ui测试

1.配置支持单元测试的工程 在写测试之前,让我们做下简单的检查,确保工程配置正确. 首先,确认在Build Variants窗口内的Test Artifact中选择了"Unit Tests". 然后,在工程的src文件夹内创建test和test/java文件夹.需要注意的是,你不能在Android视图下进行这些操作,要么在系统的文件管理器内创建,要么在工程窗口左上方点击下拉菜单选择Project视图.最终的工程结构应该是这样的: (在codelab的剩余部分,你可以返回继续使用Andr

iOS 单元测试- Xcode 7测试工具XCTest学习

1. 单元测试简介 1.1.Unit Testing: 单元测试 测试这个词很容易理解,那么什么是单元(Unit)呢? 一个单元指的就是应用程序中可以测试的最小单元. 一组源代码可以测试,一般要求有明确的输入与输出.因此一般来说源代码中明确的包含输入输出的每一个方法被认为一个测试的单元(一个case). 注意,这里的输出并不局限于方法的返回值对输入参数的改变,也包括方法在执行过程中改变的任何数据. 单元测试在程序里面可以理解一个模块一个方法,在每个可能存在的模块都进行测试,确保每个模块都没有问题

SpringBoot学习之mvc

Spring Boot非常适合Web应用程序开发. 我们可以使用嵌入式Tomcat,Jetty或Undertow轻松创建自包含的HTTP服务器. 大多数Web应用程序将使用spring-boot-starter-web模块快速启动和运行. 一.关于springboot中mvc(控制器) 在SpringBoot中使用mvc与springmvc基本一致,我们甚至可以按照springmvc中的标准来完成控制器的实现. 代码示例: package com.bdqn.lyrk.study.springbo

从Spring到SpringBoot构建WEB MVC核心配置详解

目录 理解Spring WEB MVC架构的演变 认识Spring WEB MVC 传统时代的Spring WEB MVC 新时代Spring WEB MVC SpringBoot简化WEB MVC开发 自动装配 条件装配 外部化配置 本章源码下载 理解Spring WEB MVC架构的演变 基础Servlet架构 核心架构:前端控制器 Spring WEB MVC架构 认识Spring WEB MVC 传统时代的Spring WEB MVC 怎么讲呢?就是很传统的使用Spring Framew