mock SpringMVC 测试控制器方法
2024-08-26 15:34:36
从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等属性
最新文章
- iPhone开发基础教程_第二章
- 1036. Crypto Columns 2016 11 02
- String 归档
- java.lang.NoClassDefFoundError: [Lorg/hibernate/engine/FilterDefinition
- ecshop底部版权修改和组成分析
- 并发与多版本:update重启动问题
- python3、selenium、autoit3,通过flash控件上传文件
- 遍历文件夹及其子文件夹下的.pdf文件,并解压文件夹下所有的压缩包
- 关于异或(Xor)的一点笔记
- CF 602B Approximating a Constant Range
- python 安装cv2
- Selenium自动化测试-unittest单元测试框架使用
- 当yum安装出现Error: Package: glibc-headers .....时
- mybatis教程6(逆向工程)
- 把文本数据转化为json
- 每日linux命令学习-rpm命令
- 【BZOJ】1187: [HNOI2007]神奇游乐园
- rsync同步目录
- 将驼峰转化为下化线(将型如AbcDef转化为abc_def)
- MySQL日志功能详解
热门文章
- MySQL 分区知识点(二)
- Unable to load native-hadoop library for your platform(已解决)
- LINUX CENTOS关机与重启命令详解
- Leetcode 969. Pancake Sorting
- Busybox shell脚本修改密码
- 2017-2018-1 20179215《Linux内核原理与分析》第十二周作业
- 利用python进行数据分析—数据清洗记录3,map,apply,
- HAWQ 操作笔记
- 终于解决了一个Win7 下 VS 编译的问题,困扰了我好几个月
- Python 函数之lambda、map、filter和reduce