澳门蒲京LindDotNetCore~Mock对实在运用中之义。LindDotNetCore~Mock对实在行使被的含义。

回到目录,回到目录

回到目录

返回目录

Mock于单元测试里之义

Mock测试就是以测试过程遭到,对于一些不轻构造或无便于得之靶子,用一个虚拟的对象来创造为
即测试的测试方法。一个闹钟因日来拓展提醒服务,如果过了下午5点钟不畏播放音频文件
唤醒大家下班了,如果我们设下真实的目标来测试的说话就是只好苦苦等及下午五触及,然后将耳朵放在音箱
任何,我们应有采取mock对象[1]
来展开测试,这样咱们就算可套控制时间了,而不用苦苦守候时钟转
到下午5点钟了。

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对象是让模仿出的,我们可以吗它们提供多份模拟数据,以便更客观
    的测试结果的正确性!
    待续……
    返回目录

干什么而用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对象是于法下的,我们得以呢它提供多份模拟数据,以便更客观
    的测试结果的没错!
    待续……
    回目录