c# - Personalizaciones de autofijación: proporcionar parámetro de constructor.
autofixture (1)
Como se responde here puedes tener algo como
public class FooArg : ISpecimenBuilder
{
private readonly string value;
public FooArg(string value)
{
this.value = value;
}
public object Create(object request, ISpecimenContext context)
{
var pi = request as ParameterInfo;
if (pi == null)
return new NoSpecimen(request);
if (pi.Member.DeclaringType != typeof(Foo) ||
pi.ParameterType != typeof(string) ||
pi.Name != "str2")
return new NoSpecimen(request);
return value;
}
}
y luego puedes registrarlo así
var fixture = new Fixture();
fixture.Customizations.Add(new FooArg(knownValue));
var sut = fixture.Create<Foo>();
Tengo la siguiente clase:
class Foo
{
public Foo(string str, int i, bool b, DateTime d, string str2)
{
.....
}
}
Estoy creando un Foo
con AutoFixture:
var foo = fixture.Create<Foo>();
pero quiero que AutoFixture proporcione un valor conocido para el parámetro str2
y use el comportamiento predeterminado para todos los demás parámetros.
Intenté implementar un SpecimenBuilder
pero no puedo encontrar una manera de obtener los metadatos asociados con la solicitud para saber que me están llamando desde el constructor de Foo.
¿Hay alguna manera de lograr esto?