使用MockMvc测试Spring mvc Controller

来源:互联网 发布:淘宝哪家店的檀香靠谱 编辑:程序博客网 时间:2024/06/06 14:04

一、概述

对模块进行集成测试时,希望能够通过输入URL对Controller进行测试,如果通过启动服务器,建立http client进行测试,这样会使得测试变得很麻烦,比如,启动速度慢,测试验证不方便,依赖网络环境等,这样会导致测试无法进行,为了可以对Controller进行测试,可以引入MockMVC进行解决。


二、简介

MockMVC实现了对Http请求的模拟,能够直接使用网络的形式,转换到Controller的调用,这样可以使得测试速度快,不依赖网络环境,而且提供了一套验证的工具,这样可以使得请求的验证统一而且很方便。


三、运行配置

用到的注解

A.RunWith(SpringJUnit4ClassRunner.class):表示使用Spring Test组件进行单元测试

B.WebAppConfiguration:使用这个Annotate会在跑单元测试的时候真实的启动一个web服务,然后开始调用Controller的Rest API,待单元测试跑完之后再将web服务停掉

C.ContextConfiguration:指定Bean的配置文件信息,以下采用的是文件路径形式,如果有多个配置文件,可以将括号中的信息配置为一个字符串数组来表示

基本框架


测试逻辑

校验Controller处理之后,请求是否为成功状态,返回的内容是否包含了:"{'foo':'bar'}"字符串

1.mockMvc调用perform,调用controller的业务处理逻辑

2.perform返回ResultActions,返回操作结果,通过ResultActions,提供了统一的验证方式

3.使用StatusResultMatchers对请求结果进行验证

4.使用ContentResultMatcher对请求返回的内容进行验证

原创粉丝点击