澳门蒲京网址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对象是叫模仿出的,我们好啊其提供多份模拟数据,以便更客观
    的测试结果的不易!
    待续……
    返目录