例如,ISomething是一个具有三个属性的接口:string Name和int Count,以及一些复杂的属性ImComplex (循环依赖关系等等),我不希望AutoFixture构建这些属性。因此,我需要AutoFixture创建一个ISomething模型,其默认算法设置为Name和Count,ImComplex为null。但如果我像这样解决这个问题,我会得到一个例外:
fixture.Customize(new AutoConfiguredMoqCustomization());
var some = fixture.Build<ISomething>().Without(x=>x.ImComplex).Create<ISomething>();Ploeh.AutoFixture.ObjectCreationException :装饰的ISpecimenBuilder无法根据请求: RP.Core.IInformationUnit创建一个样本。如果请求表示接口或抽象类,就会发生这种情况;如果是这样的话,注册一个ISpecimenBuilder,它可以根据请求创建样本。如果这种情况发生在强类型的构建表达式中,请尝试使用IFactoryComposer方法之一提供一个工厂。
我该怎么办?
发布于 2015-11-28 20:38:52
Build禁用所有自定义(如方法的文档中所述),因此它不会与AutoConfiguredMoqCustomization一起工作。
如果问题是该属性具有循环依赖关系,则可以:
https://stackoverflow.com/questions/33973759
复制相似问题