自定义与残留收集器

时间:2014-02-05 23:02:52

标签: c# unit-testing autofixture

我并没有真正掌握自定义和残留收集器之间的区别。

根据Documentation,如果我注册了可以构建的自定义项,ExampleClass它将处理该类型的请求未被其他构建者处理。如果我为类型ExampleClass注册了一个残留收集器,它将处理请求,未由任何(其他)构建者处理

区别在哪里?

1 个答案:

答案 0 :(得分:7)

<强> TL;博士
这是一个非常有效的问题。两者之间的差异是 priority ,即他们有机会处理请求的顺序。首先是自定义,而残留收集器是最后一次。

AutoFixture的核心是Chain of Responsibility,其中管道中的每个节点都称为样本构建器。这些构建器分为三类,它们决定了它们在链中的位置:

  1. 定制
  2. 引擎
  3. 残留收集者
  4. 链中较高的标本构建器首先处理传入的请求,有效地覆盖那些进一步向下的

    自定义通常是由用户创建的特定标本构建器,用于以特定方式处理某些类型的请求。因此,他们被赋予了最高优先级。

    引擎是AutoFixture附带的内置标本制作工具。它们处理所有原始类型,如字符串,数字和日期。

    残留收集器是具有最低优先级的样本构建器,并将捕获任何其他构建器无法处理的请求。它们通常用作后备策略。