2014-02-05 28 views
6

我没有真正掌握定制和残渣收集器之间的区别。定制对残留收集器

Documentation,如果我注册的是可以建立,ExampleClass它会处理该类型没有被其他制造商处理的请求定制。如果我注册ExampleClass类型的Residue Collector,它将处理请求,即不由任何(其他)建设者处理

差异在哪里?

回答

7

tl; dr
这是一个非常有效的问题。两者之间的差异是优先级,这是他们有机会处理请求的顺序。定制是第一个,而Residue Collectors是最后一个。

AutoFixture的核心部分由Chain of Responsibility组成,其中管道中的每个节点被称为样本生成器。这些助三类,即确定在链中的位置安排:

  1. 定制
  2. 引擎
  3. 残留收藏家

标本建设者链越往上去处理传入的请求首先,有效压倒那些进一步下跌的股票

定制通常是由用户创建的临时样本构建器,用于以特定方式处理某种请求。因此,他们被赋予最高优先权。

发动机是内置的AutoFixture标本制造商。它们处理所有基本类型,如字符串,数字和日期。

残渣收集器是具有最低优先级的样本制造商,并且将捕获任何其他制造商无法处理的请求。它们通常用作回退策略。