繁体   English   中英

如何对计划的逻辑进行单元测试?

[英]How do I unit test the scheduled logics?

这个问题是关于对预定方法进行单元测试的。

我正在使用FluentScheduler实现计划的作业执行。

这是我的Execute方法

public void Execute()
{
   var provisioningRepo = _containerFactory.GetInstance<IProvisioningRepo>();
   var discounts = provisioningRepo.GetDiscounts();
   if (discounts.Count == 0)
     return;

   foreach (var discount in discounts)
   {
       //doing some logics
   }    
}

这是我的调度程序的“ app.config”条目。

      <add key="myMinitueSchedule" value="60" />

问题1:如何测试在正确的时间执行的方法? 那是每60秒一次吗?

问题2:内部执行的逻辑需要独立于调度程序进行测试吗?

根据你的问题2:在方法内部的逻辑Execute()可如下测试:只要outsorce在列表中的“逻辑运算” discounts 然后,您可以分别对方法MakeLogicThingsWithDiscount逻辑进行单元测试:

public void Execute()
{
   var provisioningRepo = _containerFactory.GetInstance<IProvisioningRepo>();
   var discounts = provisioningRepo.GetDiscounts();
   if (discounts.Count == 0)
     return;
   discounts = MakeLogicThingsWithDiscount(discounts);
}

private IEnumerable<Discount> MakeLogicThingsWithDiscount(IEnumerable<Discount> discounts)
{
   //make logic things here
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM