我并没有真正掌握自定义和残留收集器之间的区别。
根据Documentation,如果我注册了可以构建的自定义项,ExampleClass
它将处理该类型的请求未被其他构建者处理。如果我为类型ExampleClass
注册了一个残留收集器,它将处理请求,未由任何(其他)构建者处理
区别在哪里?
答案 0 :(得分:7)
<强> TL;博士强>
这是一个非常有效的问题。两者之间的差异是 priority ,即他们有机会处理请求的顺序。首先是自定义,而残留收集器是最后一次。
AutoFixture的核心是Chain of Responsibility,其中管道中的每个节点都称为样本构建器。这些构建器分为三类,它们决定了它们在链中的位置:
链中较高的标本构建器首先处理传入的请求,有效地覆盖那些进一步向下的。
自定义通常是由用户创建的特定标本构建器,用于以特定方式处理某些类型的请求。因此,他们被赋予了最高优先级。
引擎是AutoFixture附带的内置标本制作工具。它们处理所有原始类型,如字符串,数字和日期。
残留收集器是具有最低优先级的样本构建器,并将捕获任何其他构建器无法处理的请求。它们通常用作后备策略。