我正在进行映射方法的单元测试,其中我有一个类型为字符串的源属性被映射到一个整数类型的目标属性。
因此,我希望AutoFixture创建一个具有特定字符串属性的匿名整数源对象,而不是所有字符串属性都是整数。这种方式是否可行?
因此,我希望AutoFixture创建一个具有特定字符串属性的匿名整数源对象,而不是所有字符串属性都是整数。这种方式是否可行?
public class Foo
{
public string StringThatReallyIsANumber { get; set; }
}
public class StringThatReallyIsANumberGenerator : ISpecimenBuilder
{
public object Create(object request, ISpecimenContext context)
{
var targetProperty = request as PropertyInfo;
if (targetProperty == null)
{
return new NoSpecimen(request);
}
if (targetProperty.Name != "StringThatReallyIsANumber")
{
return new NoSpecimen(request);
}
var value = context.CreateAnonymous<int>();
return value.ToString();
}
}
StringThatReallyIsANumber
的属性,这在本例中是我们的约定。Fixture.Customizations
集合将其添加到Fixture
实例中即可。var fixture = new Fixture();
fixture.Customizations.Add(new StringThatReallyIsANumberGenerator());
var anonymousFoo = fixture.CreateAnonymous<Foo>();