LindDotNetCore~Mock对实际应用中的意义
回到目录
Mock在单元测试里的意义
Mock测试就是在测试过程中,对于某些不容易构造或者不容易获取的对象,用一个虚拟的对象来创建以
便测试的测试方法。一个闹钟根据时间来进行提醒服务,如果过了下午5点钟就播放音频文件
提醒大家下班了,如果我们要利用真实的对象来测试的话就只能苦苦等到下午五点,然后把耳朵放在音箱
旁,我们应该利用mock对象[1] 来进行测试,这样我们就可以模拟控制时间了,而不用苦苦等待时钟转
到下午5点钟了。
为什么要用Mock
- 模拟接口的方法实现,方便测试,不需要额外建立新的类型
- 对集成测试很有必要
- 体现了面向接口编程的重要性和必要性
一般将数据层进行Mock,通过对数据的模拟,来实现业务的准确性
输入参数和预期结果
我们可以定义两个对象,输入参数是我们给测试方法传递的原始数据,它通过计算逻辑生产新的结果;
而预期结果是我们从真实环境中通过输入参数产生的正式结果;在经过mock测试之后,我们把真实的预
期结果和测试产生的结果进行对比,这样可以验证业务逻辑的正确性!使用方法
//注册一个mock对象,并重写它的方法GetClosing,伪造它的返回结果_report_CashFlowDao = new Mock<IReport_CashFlowDao>();_report_CashFlowDao.Setup(p => p.GetClosing(270, new DateTime(2017, 10, 31))).Returns(() =>{return _sheetReportList;});
下面业务层方法依赖于它,通过构造方法把它注入进来
_cashFlowService = new CashFlowService(_report_CashFlowDao.Object);_cashFlowService.HandleOrder(1139);
通过上面代码我们完成的一个业务场景的mock过程,并最终调用了它的HandlerOrder方法,在这里我们与
数据库交互的IReport_CashFlowDao对象是被模拟出来的,我们可以为它提供多份模拟数据,以便更客观
的测试结果的正确性!
待续……
回到目录
LindDotNetCore~Mock对实际应用中的意义相关推荐
- 推荐算法炼丹笔记:科学调参在模型优化中的意义
作者:九羽 ,公众号:炼丹笔记 基于Embedding的推荐算法模型一直是近几年研究的热门,在各大国际会议期刊都能看到来自工业界研究与实践的成果.MF(Matrix Factorization)作为传 ...
- Mock和Java单元测试中的Mock框架Mockito介绍
什么是Mock? 在面向对象程序设计中,模拟对象(英语:mock object,也译作模仿对象)是以可控的方式模拟真实对象行为的假的对象.程序员通常创造模拟对象(mock object)来测试其他对象 ...
- 试述hadoop生态系统以及每个部分的具体功能_Hadoop在大数据分析中的意义和作用...
什么是Hadoop? Apache Hadoop是一个开放源代码软件框架,用于开发在分布式计算环境中执行的数据处理应用程序. 使用HADOOP构建的应用程序可在分布在商用计算机群集上的大型数据集上运行 ...
- mock.js 在html中使用demo示例代码
mock.js 在html中使用demo示例代码 <!DOCTYPE html> <html lang="en"> <head><meta ...
- 点线面的意义_点线面在绘画中的意义
论绘画中的点线面 龙源期刊网 http://www.qikan.com.cn 论绘画中的点线面 作者:郭俣 来源:<文艺生活· 文海艺苑>2014 年第 08 期 摘 要:艺术工作者应该给 ...
- 用计算机画画的意义,浅谈电脑绘画在美术教学中的意义.doc
浅谈电脑绘画在美术教学中的意义 精品论文 参考文献 浅谈电脑绘画在美术教学中的意义 梁亮(绵阳市绵阳中学英才学校绵阳621000) [内容提要]随着人类社会的发展,科技不断进步,艺术领域也在不断进步, ...
- 中专计算机学数学,科学计算器在中职数学教学中的意义
科学计算器在中职数学教学中的意义 (7页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.90 积分 科学计算器在中职数学教学中的意义 摘 要:科学计算器 ...
- NaN在js中的意义
NaN在js中的意义 NaN(Not a number)在一般的计算机专业都表示为 非数值类型,或者不可表示的值. 在javascript中是一种全局对象的属性,表示这个值不是数字,在js中可以将nu ...
- 计算机安全在医学中的重要性,试议计算机技术在医学中的意义
试议计算机技术在医学中的意义 一.计算机技术在医学领域的具体应用 1 医院信息系统, 是利用 网络通讯技术, 计算机软硬件技术等现代化手段, 对医院及所属各个 部门的进行综合管理, 对在医疗活动各阶段 ...
最新文章
- 使用MarkDown编辑器做出有意思的柱状图(完整代码)
- JavaScript DOM 学习笔记(四)
- ECMAScript Query实例
- centos7 cmake安装mysql_centos7 安装cmake
- Jmeter之逻辑控制器操作
- HashSet集合和TreeSet集合
- 使用Visio—UML画类图
- 关于a标签的href属性的注意事项
- scanf 用法大全
- Exam化的软件项目管理
- 比特币官方客户端钱包是用什么语言开发的_5种主流比特币客户端的开发选型...
- (13)Zynq DDR控制器介绍
- 如何测试c程序的内存占用_如何写出高效的嵌入式C程序
- 微信开发-UnionID机制相关文档
- MacBook Touch Bar(触控栏)无法正常工作的解决方法
- Freemaker判断是否为空
- 将你的笔记本变成无线路由器
- 核桃编程学python吗_学编程要趁早?对话核桃编程X支付宝 “小程序编程马拉松”三强得主...
- robot—如何调用上传文件的接口,表单传值
- Python爬虫——selenium模拟京东网站登录(一)