这有帮助。浏览
source
经常有帮助。
var indicators=_f.CreateMany<Indicator>();
_f.Register<IList<Indicator>>(()=>indicators.ToList());
不过,也许还有更好的办法。
总的来说,这就是目前的情况:
_f=new Fixture().Customize(new AutoMoqCustomization());
var indicators=_f.CreateMany<Indicator>();
_f.Register<IList<Indicator>>(()=>indicators.ToList());
var regionName=_f.CreateAnonymous<string>();
_f.Register<string,Country,bool,Region>((name,country,call)=>
new Region(regionName,_f.CreateAnonymous<Country>(),true));
_c.Set(x=>x.Regions,_f.CreateMany<Region>().ToList());
_f.Register<IList<ManagementBoardEntry>>(()=>
_f.CreateMany<ManagementBoardEntry>().ToList());
_f.Register<IList<FinancialInfoEntry>>(()=>
_f.CreateMany<FinancialInfoEntry>().ToList());
_f.Register<IList<Partner>>(()=>_f.CreateMany<Partner>().ToList());
_p=_f.CreateAnonymous<Project>();
不能称之为漂亮(任何重构建议都是受欢迎的),但它仍然比手动编写所有东西要好得多。
使用
IList
当然有一个错误的选择。更糟的是-我在用
伊利斯特
也适用于属性。这会邀请客户机直接使用它们,而不是遍历聚合根目录。
使用时有一个缺点
params
. 不能使用多个(除非我又缺少一些基础知识)。我接收列表作为输入(ExcelSheetDOM的一部分),不知道编译时会有多少元素。
模特真的很新鲜。刚刚烤好了(所以很有可能我对那些空虚的检查是错的,我会和客户和业务分析师讨论这个问题)。
我的策略是自由地雕刻它,并通过单元测试将其推向所需的状态。这就是我不喜欢严格的TDD的真正原因。它偷走了焦点,迫使我思考细节而不是整个画面有点太早。我更喜欢把它画出来并加以改进,直到它看起来好为止。但这可能是因为我对测试不够流利。
不管怎样-谢谢你的好建议。我将继续学习有关自动固定的更多信息。