回到目录

Mock在单元测试里的意义

Mock测试就是在测试过程中,对于某些不容易构造或者不容易获取的对象,用一个虚拟的对象来创建以
便测试的测试方法。一个闹钟根据时间来进行提醒服务,如果过了下午5点钟就播放音频文件
提醒大家下班了,如果我们要利用真实的对象来测试的话就只能苦苦等到下午五点,然后把耳朵放在音箱
旁,我们应该利用mock对象[1] 来进行测试,这样我们就可以模拟控制时间了,而不用苦苦等待时钟转
到下午5点钟了。

为什么要用Mock

  1. 模拟接口的方法实现,方便测试,不需要额外建立新的类型
  2. 对集成测试很有必要
  3. 体现了面向接口编程的重要性和必要性
  4. 一般将数据层进行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对实际应用中的意义相关推荐

  1. 推荐算法炼丹笔记:科学调参在模型优化中的意义

    作者:九羽 ,公众号:炼丹笔记 基于Embedding的推荐算法模型一直是近几年研究的热门,在各大国际会议期刊都能看到来自工业界研究与实践的成果.MF(Matrix Factorization)作为传 ...

  2. Mock和Java单元测试中的Mock框架Mockito介绍

    什么是Mock? 在面向对象程序设计中,模拟对象(英语:mock object,也译作模仿对象)是以可控的方式模拟真实对象行为的假的对象.程序员通常创造模拟对象(mock object)来测试其他对象 ...

  3. 试述hadoop生态系统以及每个部分的具体功能_Hadoop在大数据分析中的意义和作用...

    什么是Hadoop? Apache Hadoop是一个开放源代码软件框架,用于开发在分布式计算环境中执行的数据处理应用程序. 使用HADOOP构建的应用程序可在分布在商用计算机群集上的大型数据集上运行 ...

  4. mock.js 在html中使用demo示例代码

    mock.js 在html中使用demo示例代码 <!DOCTYPE html> <html lang="en"> <head><meta ...

  5. 点线面的意义_点线面在绘画中的意义

    论绘画中的点线面 龙源期刊网 http://www.qikan.com.cn 论绘画中的点线面 作者:郭俣 来源:<文艺生活· 文海艺苑>2014 年第 08 期 摘 要:艺术工作者应该给 ...

  6. 用计算机画画的意义,浅谈电脑绘画在美术教学中的意义.doc

    浅谈电脑绘画在美术教学中的意义 精品论文 参考文献 浅谈电脑绘画在美术教学中的意义 梁亮(绵阳市绵阳中学英才学校绵阳621000) [内容提要]随着人类社会的发展,科技不断进步,艺术领域也在不断进步, ...

  7. 中专计算机学数学,科学计算器在中职数学教学中的意义

    科学计算器在中职数学教学中的意义 (7页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.90 积分 科学计算器在中职数学教学中的意义 摘 要:科学计算器 ...

  8. NaN在js中的意义

    NaN在js中的意义 NaN(Not a number)在一般的计算机专业都表示为 非数值类型,或者不可表示的值. 在javascript中是一种全局对象的属性,表示这个值不是数字,在js中可以将nu ...

  9. 计算机安全在医学中的重要性,试议计算机技术在医学中的意义

    试议计算机技术在医学中的意义 一.计算机技术在医学领域的具体应用 1 医院信息系统, 是利用 网络通讯技术, 计算机软硬件技术等现代化手段, 对医院及所属各个 部门的进行综合管理, 对在医疗活动各阶段 ...

最新文章

  1. 使用MarkDown编辑器做出有意思的柱状图(完整代码)
  2. JavaScript DOM 学习笔记(四)
  3. ECMAScript Query实例
  4. centos7 cmake安装mysql_centos7 安装cmake
  5. Jmeter之逻辑控制器操作
  6. HashSet集合和TreeSet集合
  7. 使用Visio—UML画类图
  8. 关于a标签的href属性的注意事项
  9. scanf 用法大全
  10. Exam化的软件项目管理
  11. 比特币官方客户端钱包是用什么语言开发的_5种主流比特币客户端的开发选型...
  12. (13)Zynq DDR控制器介绍
  13. 如何测试c程序的内存占用_如何写出高效的嵌入式C程序
  14. 微信开发-UnionID机制相关文档
  15. MacBook Touch Bar(触控栏)无法正常工作的解决方法
  16. Freemaker判断是否为空
  17. 将你的笔记本变成无线路由器
  18. 核桃编程学python吗_学编程要趁早?对话核桃编程X支付宝 “小程序编程马拉松”三强得主...
  19. robot—如何调用上传文件的接口,表单传值
  20. Python爬虫——selenium模拟京东网站登录(一)

热门文章

  1. OSS在private权限下的无参数访问(Nginx反向代理实现)
  2. 科大讯飞陶晓东:人工智能时代的医学影像 | CCF-GAIR 2017
  3. CCF NOI1063 计算组合数
  4. 设计模式(十五)享元模式(结构型)
  5. 不同交换机不通过trunk在vlan间通信
  6. 名头不小!!VMware vSphere实为VI升级版。
  7. TCP/IP之传输层(一)
  8. 身患安全杂症,企业如何“下药”?
  9. 需要注意变量作用域的使用
  10. python 子图_python 实现在一张图中绘制一个小的子图方法