LindDotNetCore~Mock对实际利用被的意义。LindDotNetCore~Mock对实际采用中之义。

by admin on 2018年10月5日

返目录

返目录

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对象是给模仿出的,我们可以呢她提供多份模拟数据,以便更合理
    的测试结果的正确!
    待续……
    回来目录

相关文章

发表评论

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

网站地图xml地图