在这种情况下,我正在为特定类型创建 AutoFixture 样本构建器System.Data.DataSet
。构建器将返回 a FakeDataSet
,这是为测试定制DataSet
的。
以下内容不起作用,dataSet
始终返回 null,即使在DataSet
请求 a 时也是如此(我可以通过深入request
研究属性来判断)。
public class DataSetBuilder : ISpecimenBuilder
{
public object Create(object request, ISpecimenContext context)
{
var dataSet = request as DataSet;
if (dataSet == null)
{
return new NoSpecimen(request);
}
return new FakeDataSet();
}
}
这种变化确实有效,但似乎过于复杂。感觉好像有更好的方法来完成同样的事情,而我只是错过了一些东西。
public class DataSetBuilder : ISpecimenBuilder
{
public object Create(object request, ISpecimenContext context)
{
var seededRequest = request as SeededRequest;
if (seededRequest == null)
{
return new NoSpecimen(request);
}
var requestType = seededRequest.Request as Type;
if (requestType == null)
{
return new NoSpecimen(request);
}
if (requestType.Name != "DataSet")
{
return new NoSpecimen(request);
}
return new FakeDataSet();
}
}