博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
springboot-32-使用mvc测试
阅读量:6969 次
发布时间:2019-06-27

本文共 2148 字,大约阅读时间需要 7 分钟。

Spring Boot可以和大部分流行的测试框架协同工作:通过Spring JUnit创建单元测试;生成测试数据初始化数据库用于测试;Spring Boot可以跟BDD(Behavier Driven Development)工具、Cucumber和Spock协同工作,对应用程序进行测试。

进行软件开发的时候,我们会写很多代码,不过,再过六个月(甚至一年以上)你知道自己的代码怎么运作么?通过测试(单元测试、集成测试、接口测试)可以保证系统的可维护性,当我们修改了某些代码时,通过回归测试可以检查是否引入了新的bug。总得来说,测试让系统不再是一个黑盒子,让开发人员确认系统可用。

在web应用程序中,对Controller层的测试一般有两种方法:(1)发送http请求;(2)模拟http请求对象。第一种方法需要配置回归环境,通过修改代码统计的策略来计算覆盖率;第二种方法是比较正规的思路,但是在我目前经历过的项目中用得不多,今天总结下如何用Mock对象测试Controller层的代码。

在之前的几篇文章中,我们都使用bookpub这个应用程序作为例子,今天也不例外,准备测试它提供的RESTful接口是否能返回正确的响应数据。这种测试不同于单元测试,需要为之初始化完整的应用程序上下文、所有的spring bean都织入以及数据库中需要有测试数据,一般来说这种测试称之为集成测试或者接口测试

mvc测试代码: 
package com.letv.bigdata.idfa.test.controller;import com.letv.bigdata.idfa.controller.IdfaController;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest;import org.springframework.boot.test.context.SpringBootTest;import org.springframework.boot.test.mock.mockito.MockBean;import org.springframework.test.context.junit4.SpringRunner;import org.junit.*;import org.junit.runner.*;import org.springframework.test.context.web.WebAppConfiguration;import org.springframework.test.web.servlet.MockMvc;import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;import org.springframework.test.web.servlet.result.MockMvcResultMatchers;import org.springframework.test.web.servlet.setup.MockMvcBuilders;import org.springframework.web.context.WebApplicationContext;@RunWith(SpringRunner.class)@SpringBootTest@AutoConfigureMockMvc@WebAppConfigurationpublic class IdfaControllerTest {    private MockMvc mvc;    @Autowired    private WebApplicationContext context;    @Test    public void test() throws Exception {        mvc.perform(MockMvcRequestBuilders.get("/query"))                .andExpect(MockMvcResultMatchers.status().isOk());//                .andExpect(MockMvcResultMatchers.content().string("abc"));    }    @Before    public void setupMockMvc() throws Exception {        mvc = MockMvcBuilders.webAppContextSetup(context).build();    }}

 

可以进行简单的get测试, 其他待测

 

转载地址:http://ysasl.baihongyu.com/

你可能感兴趣的文章
css色彩对应值
查看>>
XWiki 4.3 正式版发布
查看>>
java中finally和return的执行顺序
查看>>
.net微信公众号开发——群发消息
查看>>
纪念逝去的岁月——C++实现一个队列(使用类模板)
查看>>
GO语言练习:多返回值函数
查看>>
让x86的android模拟器能模拟arm架构系统
查看>>
初学Struts2-自定义拦截器及其配置
查看>>
关于js中的几个小问题。
查看>>
hdoj-2058-the sum problem
查看>>
MySql基础整理
查看>>
Spring Bean Scope 有状态的Bean 无状态的Bean
查看>>
php 批量修改文件格式或重命名
查看>>
Android数据加密之Aes加密
查看>>
InputStream,String相互转化
查看>>
Atitit.gui api自动化调用技术原理与实践
查看>>
详解zabbix安装部署(Server端篇)
查看>>
阿里云负载不支持 WebSocket 协议与 WSS 和 Nginx 配置问题
查看>>
获取Android屏幕尺寸、控件尺寸、状态栏/通知栏高度、导航栏高度
查看>>
Android开之在非UI线程中更新UI
查看>>