Mock对实在使用中的意义

归来目录

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

相关文章

admin

网站地图xml地图