Je travaille sur l'écriture de tests unitaires correctement, et je me demande si c'est une mauvaise technique de tester le résultat d'une méthode testée en appelant une autre méthode pour vérifier le résultat ?Tests unitaires: Utiliser une autre méthode pour vérifier que la méthode testée fonctionne correctement
ie. Dans l'exemple ci-dessous, je peux seulement vérifier qu'un appel de méthode StoreObject a réussi (c'est-à-dire un objet stocké dans le cache) en appelant FetchObject ou la propriété HasCachedObjects, les deux contenant une logique qui doit être testée séparément. Que feriez-vous dans ce cas où le résultat est caché de l'API publique?
J'ai une classe de cache:
public class Cache {
private Dictionary<string, object> _Cache = null;
public bool HasCachedObjects {
get {
if (_Cache.Count > 0) {
return true;
} else {
return false;
}
}
}
public Cache() {
_Cache = new Dictionary<string,object>();
}
public void StoreObject(string key, object obj) {
_Cache[key] = obj;
}
public object FetchObject(string key) {
if (_Cache.ContainsKey(key)) {
return _Cache[key];
}
return null;
}
}
peut vous aussi poster votre test? –
sa classe simple imaginaire, serait appel cache.StoreObject ("test", obj); puis Assert.AreEqual (true, cache.HasCachedObjects); ou quelque chose comme ça – theringostarrs