Jestem trochę początkującym w testowaniu jednostkowym. Natknął się na problem testów jednostkowych leniwy właściwość obciążenia i zastanawiałem się, czy istnieje proste rozwiązanie, że:Prosty sposób testowania właściwości leniwego obciążenia
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;
}
}
muszę przetestować logikę w nieruchomości (if), a nie rzeczywista funkcjonalność obciążenie SubscriptionType - wydaje jak najbardziej oczywistym podejściem byłoby prawdopodobnie streszczenie SubscriptionType.Load i użycie pewnego rodzaju IoC do zastąpienia metodą próbną. Zastanawiam się, czy istnieją prostsze sposoby na uniknięcie tego rodzaju refaktoryzacji - wydaje się, że jest to trochę przesadzone, aby napisać poprawny test jednostkowy. Twoje myśli? Dzięki!
Spójrz na Lazy klasy w .NET 4. Korzystanie że będziesz musiał sposób mniej kodu - chyba nic nawet warte testów jednostkowych –
Co chcesz przetestować? Fakt, że nieruchomość zawiera poprawne dane lub fakt, że jest załadowany w leniwy sposób? – zerkms
Próba sprawdzenia logiki, która wywołuje Load, gdy spełnione są warunki i omija obciążenie w przeciwnym razie – DSY