文档章节

springmvc mockmvc集成测试

残风vs逝梦
 残风vs逝梦
发布于 2016/07/26 20:19
字数 253
阅读 62
收藏 1

1. 创建测试基类

package com.asiainfo.bsrp.common;

import static org.springframework.test.web.servlet.setup.MockMvcBuilders.webAppContextSetup;

import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.AbstractTransactionalJUnit4SpringContextTests;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.web.WebAppConfiguration;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.web.context.WebApplicationContext;


import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.view;
import static org.springframework.test.web.servlet.setup.MockMvcBuilders.webAppContextSetup;
/**
 * 
 * @Description: springMVC web 测试的基类
 * @author king-pan pwpw1218@msn.cn
 * @date 2014年11月6日
 * @version V1.0
 */
@SuppressWarnings("unused")
@RunWith(SpringJUnit4ClassRunner.class)
@WebAppConfiguration
@ContextConfiguration(locations={"classpath:**/*.service.xml","classpath:springmvc/springMVC.xml"})
public class SpringMVCTestBase extends
		AbstractTransactionalJUnit4SpringContextTests {
	@Autowired
	protected WebApplicationContext wac;

	protected MockMvc mockMvc;

	@Before
	public void setUp() {
		mockMvc = webAppContextSetup(wac).build();
	}
	@Test
	public void test(){
		Assert.assertTrue(true);
	}
}

2. 创建测试类

package com.asiainfo.bsrp.dsms.web;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;



import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.view;
import static org.springframework.test.web.servlet.setup.MockMvcBuilders.webAppContextSetup;


import com.asiainfo.bsrp.common.SpringMVCTestBase;

@RunWith(SpringJUnit4ClassRunner.class)  
public class DSControllerTest extends SpringMVCTestBase {
	@Test
	public void test(){
		System.out.println(mockMvc);
		try {
			//打印结果到控制台
			mockMvc.perform(post("/dsms/testConn").param("json", "{\"modelId\":\"100001\",\"age\":\"111\"}")).andDo(print()).andExpect(status().isOk());
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

3. 注意的地方

   在步骤2test方法中使用的post,print等方法都是静态导入的,相关代码如下:

import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.view;
import static org.springframework.test.web.servlet.setup.MockMvcBuilders.webAppContextSetup;

 

© 著作权归作者所有

共有 人打赏支持
残风vs逝梦
粉丝 57
博文 118
码字总数 71921
作品 0
武汉
高级程序员
私信 提问
junit 集成spring报错: GenericApplicationContext cannot be cast to WebApplicationContext

公司这个项目,不是我来配置构建的, 把 spring的配置什么的,和 springmvc的配置没有区分开来,都是在一个配置文件里面,也就是 springmvc 里面。和我们一般的 配置不一样,我们一般配置都是...

之渊
2017/11/03
0
0
实践Jenkins集成Cobertura自动化构建SpringBoot工程

热文推荐: 你的微服务敢独立交付么? 理解JWT的使用场景和优劣 从Spring-Session源码看Session机制的实现细节 理解使用 JWT 设计的单点登录系统 JDK 1.5 - 1.8 各版本的新特性总结 Spring B...

程序猿DD
2018/04/28
0
0
shiro mock单元测试求解

在使用springmvc 与shiro集成的时候,浏览器访问shiro拦截器生效。通过mock实现controller单元测试,添加了mockmvc的filter 使shiro生效,但是现在问题是一直都不能通过初始化mockmvc对象的时...

盲人摸象
2016/06/16
503
0
JFinal单元测试,发现和MockMVC不太一样,没有断言等方法

最近公司在推行单元测试规范,项目中用到了JFinal、SpringMVC等框架,SpringMVC中集成的MockMVC可以断言不用通过执行 System.out.println 来查看测试结果。 JFinal单元测试参照了以下文章: ...

zhulint
2017/10/25
74
0
Spring、Spring Boot 和 TestNG 测试指南 ( 6 )

原文出处:chanjarster Spring Testing Framework提供了Spring MVC Test Framework,能够很方便的来测试Controller。同时Spring Boot也提供了Auto-configured Spring MVC tests更进一步简化了...

chanjarster
2017/12/11
0
0

没有更多内容

加载失败,请刷新页面

加载更多

dockerfile 镜像构建(1)

通用dockerfile 利用已经编译好的.jar 来构建镜像。要构建的目录如下: [root@iZuf61quxhnlk9m2tkx16cZ demo_jar]# docker build -t demo:1 . 运行镜像: [root@iZuf61quxhnlk9m2tkx16cZ de...

Canaan_
今天
2
0
Redis radix tree源码解析

Redis实现了不定长压缩前缀的radix tree,用在集群模式下存储slot对应的的所有key信息。本文将详述在Redis中如何实现radix tree。 核心数据结构 raxNode是radix tree的核心数据结构,其结构体...

阿里云云栖社区
今天
13
0
vue import 传入变量

在做动态添加component的时候,传入变量就会报错,出现以下错误信息: vue-router.esm.js?fe87:1921 Error: Cannot find module '@/components/index'. at eval (eval at ./src/components ......

朝如青丝暮成雪
今天
3
0
Flutter开发 Dio拦截器实现token验证过期的功能

前言: 之前分享过在Android中使用Retrofit实现token失效刷新的处理方案,现在Flutter项目也有“token验证过期”的需求,所以接下来我简单总结一下在Flutter项目中如何实现自动刷新token并重...

EmilyWu
今天
9
0
final Map可以修改内容,final 常量不能修改

1.final Map 可以put元素,但是不可以重新赋值 如: final Map map = new HashMap(); map = new HashMap();//不可以 因为栈中变量map引用地址不能修改 2.final str = “aa”; str = "bb";/......

qimh
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部