【发布时间】:2014-12-02 10:29:05
【问题描述】:
我有一个深度嵌套的对象模型,其中一些类可能看起来有点像这样:
class TBase { ... }
class TDerived : TBase { ... }
class Container
{
ICollection<TBase> instances;
...
}
class TopLevel
{
Container container1;
Container container2;
...
}
我想创建我的顶级对象作为测试夹具,但我希望所有 TBase 实例(例如在上面的 instances 集合中)成为 TDerived 而不是 @987654325 的实例@。
我想我可以很简单地使用类似的东西来做到这一点:
var fixture = new Fixture();
fixture.Customize<TBase>(c => c.Create<TDerived>());
var model = this.fixture.Create<TopLevel>();
...但这不起作用,因为Customize 中的 lambda 表达式是错误的。我猜有办法做到这一点,但 AutoFixture 似乎缺乏文档,除了作为开发者博客上的意识流。
谁能指出我正确的方向?
【问题讨论】:
标签: c# autofixture