Lié au question d'hier. J'ai mis en œuvre le solution proposé par Mehrdad Afshari mais cela a causé un autre problème. Pour récapituler: J'ai une classe contenant un dictionnaire de Type->IList<Type>
par exemple. Cat->{cat1, cat2}, Zebra->{zebra1, zebra2}
où Cat
et Zebra
sont des sous-classes de Animal
. Maintenant Mehrdad proposé la méthode suivante pour récupérer les tous les animaux d'un certain type:Rhino Mock stub renvoie un type différent de expected et casse mon test unitaire
IList<T> GetAnimalsOfType<T>() where T : Animal {
return dictionary[typeof(T)].OfType<T>().ToList();
}
Cela fonctionne, mais casse mon test unitaire. La raison en est que Animal est une classe abstraite et j'utilise donc Rhino Mocks pour le stub (en utilisant animal = MockRepository.GenerateStub<Animal>();
). Mon test d'unité pour cette classe essaie de créer un nouvel animal, puis de voir s'il est inclus dans le dictionnaire.
zoo.AddAnimal(animal);
IList<Animal> animals= zoo.GetAnimalsOfType<Animal>();
Assert.That(animals[0], Is.EqualTo(animal));
Malheureusement, le type d'animal créé par Rhino Mocks est un proxy animal et je demande des animaux, qui brise mon test. Des suggestions sur la façon de corriger la situation?
Mise à jour: merci à tous pour les solutions.
Pouvez-vous poster votre code de test? –
C'est juste là. – Johnny