微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c# – 我需要想法对这个Tasked方法进行单元测试

这是有问题的方法

public void StartBatchProcessing(IFileBatch fileBatch)
{
    var dataWarehouseFactsMerger = m_dataWarehouseFactsMergerFactory.Create(fileBatch);
    dataWarehouseFactsMerger.Merge();

    if(!m_isTaskStarted)
    {
        m_isTaskStarted = true;
        m_lastQueuedBatchProcessingTask = new TaskFactory().StartNew(() => ProcessBatch(dataWarehouseFactsMerger));
    }
    else
    {
        m_lastQueuedBatchProcessingTask = m_lastQueuedBatchProcessingTask.ContinueWith(prevIoUs => ProcessBatch(dataWarehouseFactsMerger));
    }
}

正如您所看到的,我正在使用TPL一个一个地排队任务,并且我想测试任务将按照它们在前一个完成后到达的顺序执行.

ProcessBatch方法受到保护,所以我认为它可以在派生类中被覆盖,并用于设置一些标志或其他东西并断言.

所有的想法都受到欢迎和赞赏.

解决方法

您可以创建DataWarehouseFactsMergerFactory的实现,该实现创建DataWarehouseFactsMerger的实现,这些实现能够记录输入的fileBatch和每个任务的开始时间,但其余部分并没有真正做任何事情.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐