springboot单元测试通过MockMvc类调用controller接口
目前有个保存接口有问题,前端双击保存调用两次接口,而生成ID策略是时间戳,这样并发情况下导致重复,
于是想自己写一个单元测试类,调用controller接口。在网上找了好几个也不行,后来经过摸索,已实现,亲测有效。
之前好多都是这样的
private MockMvc mockMvc;@Autowiredprivate WebApplicationContext webApplicationContext;@Beforepublic void setUp() throws Exception{//MockMvcBuilders.webAppContextSetup(WebApplicationContext context):指定WebApplicationContext,将会从该上下文获取相应的控制器并得到相应的MockMvc;mockMvc = MockMvcBuilders.webAppContextSetup(webApplicationContext).build();//建议使用这种 }@Test 。。。。。。
但是试了之后并没有效果,而且经测试 :
mockMvc = MockMvcBuilders.webAppContextSetup(webApplicationContext).build();//建议使用这种这行代码完全不需要下面是我的代码:
/*** @author chichenglong* @date 2019/6/14 10:29*/ @RunWith(SpringRunner.class) @SpringBootTest @WebAppConfiguration @AutoConfigureMockMvc public class ProjectRecipeControllerTest {@Autowiredprivate MockMvc mockMvc;// @Autowired // private WebApplicationContext webApplicationContext; // // @Before // public void setUp() throws Exception{ // //MockMvcBuilders.webAppContextSetup(WebApplicationContext context):指定WebApplicationContext,将会从该上下文获取相应的控制器并得到相应的MockMvc; // mockMvc = MockMvcBuilders.webAppContextSetup(webApplicationContext).build();//建议使用这种 // } @Testpublic void save() throws Exception{ProjectRecipeVo vo = new ProjectRecipeVo();ProjectRecipeDTO dto = new ProjectRecipeDTO();dto.setPatientNumber("1234564564");dto.setPatientId("YYHZ20190612LEEB");vo.setProjectRecipeDTO(dto);MvcResult mvcResult=mockMvc.perform(MockMvcRequestBuilders.post("/projectRecipe/save").content(FastJsonUtil.toJSONString(vo))).andReturn();int status=mvcResult.getResponse().getStatus();String content =mvcResult.getResponse().getContentAsString(); // Assert.assertEquals(200,status); // Assert.assertEquals("success",content);MvcResult mvcResultSecond=mockMvc.perform(MockMvcRequestBuilders.post("/projectRecipe/save").content(FastJsonUtil.toJSONString(vo))).andReturn();} }
重点注意下,@RunWith(SpringRunner.class)这个注释一定要有,因为调用controller方法需要重启一个controller,要运行,就需要一个端口,这个可以随机开启一个端口供测试用。
转载于:https://www.cnblogs.com/deyujincheng/p/11022823.html
springboot单元测试通过MockMvc类调用controller接口相关推荐
- SpringBoot单元测试:MockMvc的自动配置
MockMvc 的自动配置 上面我们提到@AutoConfigureMockMvc 提供了自动配置 MockMvc 的功能,实例化MockMvc 的 具 体 代 码 在 spring-boot-tes ...
- 如何调用封装工具类调用网上接口查询工作日
如何调用封装工具类调用网上接口查询工作日 这里的编辑器是STS,用的springboot集成环境: 先引进pom.xml依赖包 <?xml version="1.0" enc ...
- WebService工具类调用远程接口服务时java.io.IOException: Server returned HTTP response code: 500 for URL XXX
问题描述:在本地测试时,使用个人封装的Webservice代码工具类调用远程接口服务时,一切正常.但是一旦将该代码放到一个已有项目的中使用时,就会出现如下所示的错误提示 java.io.IOExcep ...
- http工具类,调用第三方接口
6月份加入fw做开发,接到了个需求,要使用http工具类调用第三方接口,在网上也找了很多http工具类,但是都不满足我的需求:要么是只传递url和一个参数,要么是传递url和一个map集合: 我想要的 ...
- 使用 @MockBean 和 @SpyBean 解决 SpringBoot 单元测试中 Mock 类装配的问题
最近在做某个项目的时候一直使用 @MockBean 来解决单元测试中 Mock 类装配到被测试类的问题.这篇文章主要介绍了 @MockBean 的使用例子以及不使用 @MockBean 而使用@Spy ...
- SpringBoot项目使用JCO实现调用SAP接口实例
一.JCO接口介绍 JCO采用的是中间式接口,即外部系统将SAP系统所需的信息生成中间数据表,SAP系统直接读取中间文件或将中间表中的信息写入数据库中,中间式接口是比较常用的一种方式,这种方式外部系统 ...
- SpringBoot(32) 整合Forest实现调用第三方接口
一.前言 Forest是什么? Forest是一个高层的.极简的轻量级 HTTP调用API框架,让Java发送HTTP/HTTPS请求不再难.它比OkHttp和HttpClient更高层,比Feign ...
- springboot 多个sevice类实现同一接口的调用
参考页面:http://blog.csdn.net/xiao190128/article/details/54890759/:感谢分享 service 是有用的相当于 xml配置中得bean id ...
- springBoot整合Ehcache——工具类调用
项目需求要缓存常用数据,整合Ehcache实现,结果@Cacheable注解怎么都不管用,网上找了很多资料各种试各种不行,无奈!只好写个工具类使用. 一.pom.xml配置 <dependenc ...
最新文章
- 魔术索引(返回索引值最小的一个)
- 用python画梵高星空-谷歌AI:推进实例级别识别 (ILR)研究
- html文件头部固定代码
- ar软件测试工具_如何为用户测试制作快速的AR原型
- html试题及答案,HTML试题及答案
- 学习使用资源文件[2] - Ico
- win7系统丢失文件的处理方法
- Django Bootstrap开发笔记02 - 模板
- 二维数组 赋值_数组,及二维数组
- OFFICE EXCEL表格中让A1 中的数字为变量时,如何引用
- 未使用的分配java,最近最久未使用页面淘汰算法———LRU算法(java实现)
- python kafka kerberos 验证 消费 生产
- 拓端tecdat|Python贝叶斯推断Metropolis-Hastings(M-H)MCMC采样算法的实现
- date在java的那个包_Java—包装类、Date和SimpleDateFormat、Calendar类
- maven下手动导入ojdbc6.jar
- keil5兼容keil4操作
- Windows系统保存电脑当前桌面壁纸图片
- 使用TTP223触摸传感器和Arduino UNO开发板实现触摸控制灯泡
- linux 5g,5G的时隙配置
- 树莓派更改WiFi信息
热门文章
- 6.STM32外设函数分类
- LeetCode 2 两数相加(链表)
- 「周末观赛指南」澳网新王当立?勇士冲击十连胜
- Kubernetes网络一年发展动态与未来趋势
- lighttpd防御 Slow HTTP Denial of Service Attack 解决办法
- 在lamp环境实现nfs中的wordpress使用
- 【编译打包】twemproxy-0.4.0-2.el7.centos.src.rpm
- SSL与HTTPS,HTTP有什么联系
- DOS命令行中用MAVEN构建Java和Java Web项目
- 技术久了,偶尔放松下吧,看看这些小样,很美好!