自定义与残留收集器

joo*_*zek 6 c# unit-testing autofixture

我并没有真正理解Customizations和Residue Collectors之间的区别.

根据文档,如果我注册可以构建的自定义,ExampleClass它将处理该类型的请求,这些请求不是由其他构建器处理的.如果我为类型注册了一个Residue Collector,ExampleClass它将处理任何(其他)构建者未处理的请求

差异在哪里?

Enr*_*lio 7

TL;博士
这是一个非常有效的问题.两者之间的区别在于优先级,即它们有机会处理请求的顺序.首先是定制,而残留收集器是最后一个.

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

  1. 自定义
  2. 发动机
  3. 残留收集者

链中较高的样本构建者首先处理传入的请求,有效地覆盖那些进一步下降的请求.

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

发动机是AutoFixture附带的内置样品制造商.它们处理所有原始类型,如字符串,数字和日期.

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