代码之家  ›  专栏  ›  技术社区  ›  Steve Dunn supercat

在任务并行库周围是否有一个接口包装器,以便我可以将其交换出来进行单元测试?

  •  3
  • Steve Dunn supercat  · 技术社区  · 14 年前

    this question 不久前。我现在知道这是个坏主意,封装任务的调度和运行应该抽象化,这样就可以从单元测试中传入一个同步调度器。

    Task Parallel Library (第三方物流)我想注射 ITaskScheduler 在我的类型中提取调度的责任,并使我能够在测试中通过一个同步的替代方法。

    Task.Factory.StartNew Task.ContinueWith . 我想我自己的工作不算太多,但我肯定有很多小工作要做

    2 回复  |  直到 7 年前
        1
  •  5
  •   svrist    12 年前

    替换 Task 类是很难的,即使您从 :自 TaskScheduler TaskFactory 不是通用的 这根本帮不了什么忙。

    根据我的经验,更好的方法是使用你自己的 任务调度器 任务调度器 ). 你可以把它传给 任务工厂 然后使用它 任务工厂

    现在你可以使用不同的 任务调度器 具有不同程度的并行性(如果需要,可以减少到1个线程),并且可以向 任务调度器

        2
  •  2
  •   Christoph    14 年前

    您可以定义这样一个接口,并将实际的库类封装在实现该接口的facade中。对于测试,将您的外观与模拟对象交换。