从Spring3.2开始 Spring包含了一种mockSpringMVC并针对controller执行http请求的机制

如(该代码选自spring实战4):

    public void shouldShowRecentSpittles() throws Exception{List<Spittle> expectedSpittles = createSpittleList(20);SpittleRespository mockRepository = mock(SpittleRespository.class);when(mockRepository.findSpittles(Long.MAX_VALUE, 20)).thenReturn(expectedSpittles);SpittleController controller = new SpittleController(mockRepository);MockMvc mockMvc = standaloneSetup(controller).setSingleView(new InternalResourceView("/WEB-INF/views/spittles.jsp")).build();mockMvc.perform(get("/spittles")).andExpect(view().name("spittles")).andExpect(model().attributeExists("spittleList")).andExpect(model().attribute("spittleList", CoreMatchers.hasItems(expectedSpittles.toArray())));}

  

public interface SpittleRespository {List<Spittle> findSpittles(long max, int count);public Spittle findOne(long id);}

  mock 以及when thenreturn 的用法在我的理解看来就是 mock方法实现了一个接口对象 when thenreturn方法对该接口对象的方法写死传入参数及返回值   之后再利用mockMvc模拟http方法请求controller 并且验证view model等属性

转载于:https://www.cnblogs.com/chrischris/p/6908523.html

mock SpringMVC 测试控制器方法相关推荐

  1. SpringMVC 中控制器方法的可用参数类型和返回类型

    SpringMVC 中控制器方法的参数列表可接受以下类型的参数, 并当该方法被调用时, SpringMVC 框架可使得方法能够获得正确的参数: javax.servlet.ServletRequest ...

  2. springMVC使用拦截器针对控制器方法做预处理、后处理、资源清理

    简单了解一下过滤器和拦截器: 过滤器是servlet规范中的一部分,任何java web工程都可以使用:在url-pattern中配置/*之后,可以对所有要访问的资源拦截.拦截器是springMVC框 ...

  3. Java框架-SpringMVC的应用(json数据交互、控制器方法返回值、文件上传)

    1. 搭建SpringMVC开发环境 1.1 创建项目,添加依赖 <?xml version="1.0" encoding="UTF-8"?> &l ...

  4. 测试私有方法_史上最轻量!阿里开源了新型单元测试Mock工具

    点击上方蓝色字体,选择"设为星标" 回复"666"获取面试宝典 TestableMock是基于源码和字节码增强的Java单元测试辅助工具,包含以下功能: 访问被 ...

  5. SpringMVC——控制器方法的返回值类型(ModelAndView、String、void、Object)

    文章目录: 1.控制器controller方法的返回值 1.1 返回值类型:ModelAndView 1.2 返回值类型:String(这里的String是视图) 1.2.1 控制器类 1.2.2 s ...

  6. SpringMVC 测试 mockMVC

    SpringMVC测试框架 基于RESTful风格的SpringMVC的测试,我们可以测试完整的Spring MVC流程,即从URL请求到控制器处理,再到视图渲染都可以测试. 一 MockMvcBui ...

  7. SpringMVC测试代码(MockMvc)

    SpringMVC测试代码指的是不需要启动springmvc项目,就可以用测试代码访问Controller. 但是要注意: SpringMVC测试代码是基于SpringBoot环境下的, 所以项目必须 ...

  8. Spring MVC学习总结(14)——SpringMVC测试框架之mockMVC详解

    SpringMVC测试框架 基于RESTful风格的SpringMVC的测试,我们可以测试完整的Spring MVC流程,即从URL请求到控制器处理,再到视图渲染都可以测试. 一 MockMvcBui ...

  9. 说说初用 Mock 工具测试碰到的坑

    说说初用 Mock 工具测试碰到的坑 我是一个在校实习生,作为一个程序猿,是个菜鸟中战斗机!对于测试,只写过一点点简单到不能再简单了的 Junit 单元测试的例子(因为当时这足以应付学校课程的内容与要 ...

最新文章

  1. 清华校庆正当时,智能小车决赛日
  2. dos攻击mysql_浅谈DOS与DDOS攻击
  3. 【原创】在C#中调用其它程序
  4. lamp自动部署工具_Linux一键配置工具ezhttp介绍
  5. Apache 更改80端口
  6. vivo X27发布日期官宣: 3月19日 三亚见!
  7. sequence to sequence模型
  8. 找不到列 dbo 或用户定义的函数或聚合_Power BI 的大数据处理方案:聚合
  9. C语言实现约瑟夫环代码
  10. 小说app开发功能及盈利方式
  11. μVision5界面常用单词解释
  12. (泰勒展开式/欧拉公式)证明:e^x推导及e^(iπ) = -1展开过程
  13. C# 二维与三维计算多边形面积的方法
  14. 华为手机怎么使用读卡器_华为手机怎么绑定门禁卡
  15. 快速读懂Http3协议总结
  16. Vue Element正则验证(所有)
  17. Oracle导出报错: unknown command beginning “exp SCOTT/...“ - rest of line ignored.
  18. 还在if-else行走天下?试试【策略模式】吧
  19. 同等学力真题押题均是骗子!勿上当
  20. SaaSpace:适合游戏开发者的最佳 3D 建模软件

热门文章

  1. 通过Stratus 服务器在Flash Player中使用RTMFP 开发P2P应用
  2. CImage 对话框初始化时候显示透明 PNG
  3. 小明利用计算机软件绘制函数,辽宁省大连市2014年高二学业水平模拟考试 信息技术试题(三)...
  4. php添加导航和删除导航,新增/修改/删除ECSHOP后台左侧导航菜单
  5. 【PAT甲】1007 Maximum Subsequence Sum (25分),求最大字段和及区间
  6. 【服务器】Discuz论坛实现微信小程序(修改接口)
  7. 【NOIP2015】【Luogu2678】跳石头
  8. 20春学期《计算机应用基础》在线作业2,东大20春学期《计算机应用基础》在线平时作业2答案...
  9. JAVA可以赋值分数吗_Java数据类型知多少?
  10. 胡学纲数据结构c语言PDF,数据结构精品课程参考书目