Sono un po 'un principiante nei test unitari. Inciampato su un problema di un'unità testare una struttura di carico artificiale e si chiede se v'è una semplice soluzione a questo:Un modo semplice per testare un carico pigro proprietà
private SubscriptionType _subscriptionType;
public SubscriptionType SubscriptionType
{
get
{
if (_subscriptionType == null ||_subscriptionType.SubscriptionTypeId != this.SubscriptionTypeId)
{
if (this.SubscriptionTypeId !=0)
_subscriptionType = SubscriptionType.Load(this.SubscriptionTypeId);
}
return _subscriptionType;
}
}
devo testare logica nella proprietà (if) e non l'effettiva funzionalità carico SubscriptionType - sembra come l'approccio più ovvio qui sarebbe probabilmente astratto SubscriptionType.Load e utilizzare qualche tipo di IoC per sostituire con un metodo mock. Mi chiedo se ci siano modi più semplici per evitare questo tipo di refactoring - sembra un po 'di overengineering solo per scrivere un caso di test unitario corretto. I tuoi pensieri? Grazie!
Guarda la classe Lazy in .NET 4. Usando questo, avrai molto meno codice - probabilmente nulla vale nemmeno la pena di testare le unità –
Cosa stai provando a testare? Il fatto che la proprietà contenga dati corretti o il fatto che sia caricata in modo lazy? – zerkms
Tentativo di testare la logica invocata Carica quando le condizioni sono soddisfatte e ignora il carico altrimenti – DSY