我有一个深度嵌套的对象模型,其中一些类可能看起来像这样:
class TBase { ... }
class TDerived : TBase { ... }
class Container
{
ICollection<TBase> instances;
...
}
class TopLevel
{
Container container1;
Container container2;
...
}
我想创建我的顶级对象作为测试夹具,但我想要所有的 TBase
实例(例如在 instances
上面的集合)是实例 TDerived
而不是 TBase
。
我以为我可以简单地使用以下内容来做到这一点:
var fixture = new Fixture();
fixture.Customize<TBase>(c => c.Create<TDerived>());
var model = this.fixture.Create<TopLevel>();
...但这不起作用,因为lambda表达式 Customize
是错的。我猜这是有办法做到这一点,但AutoFixture似乎缺乏文档,而不是开发人员博客上的意识流。
谁能指出我正确的方向?