Mock对实在行使中的意义

by admin on 2019年9月26日

归来目录

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对象是被模仿出来的,我们可以为它提供多份模拟数据,以便更客观
    的测试结果的没错!
    待续……
    重回目录

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图