Sto creando un generatore di campioni AutoFixture per un tipo particolare, in questo caso System.Data.DataSet
. Il builder restituirà uno FakeDataSet
, che è un DataSet
personalizzato per il test.Creazione di un generatore di campioni AutoFixture per un tipo
La seguente non funziona, con dataSet
tornando sempre nullo, anche quando un DataSet
viene data della richiesta (Posso dire con perforazione della request
proprietà).
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();
}
}
Questa variante funziona, ma sembra eccessivamente complessa. Sembra che ci sia un modo migliore per realizzare la stessa cosa, e mi manca qualcosa.
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();
}
}
Sono d'accordo, usare Register è la strada da percorrere. Grazie! –
Domanda veloce: non posso fare var t = request as Type; perché restituisce sempre null. È sempre di tipo SeededRequest. Perché? –
@ AdanayMartín Se _always_ restituisce 'null', allora sembra che qualcosa non sia giusto. Una replica (in una nuova domanda) è necessaria se dovessi avere anche una possibilità di risposta. –