2009-03-24 5 views
4

Mon projet génère quelques valeurs (méthode de partitionnement égale) pour chaque type de données en obtenant les valeurs minimum et maximum. Je suis en train de générer ces valeurs pour les tests fonctionnels, je passe réellement ces valeurs au partenaire nunit, max et min sont applicables à int, float, double etc. Ces valeurs sont des données de test.Comment allez-vous tester une unité contenant un type de données de table de hachage?

Dans un premier temps je les ai généré pour les types de données de base comme int, float, double, chaîne, etc.

Maintenant, je dois supporter d'autres types de données comme DataSet, Hashtable et d'autres collections.

public DataSet MySampleMethod(int param1, string param2, Hashtable ht) 

Pour tester cette fonction, je peux transmettre des valeurs pour int et string, mais comment vais-je transmettre des données de test pour ht ou comment sont des données de test généré pour une table de hachage?

Répondre

2

Vous devez extraire l'implémentation de la table de hachage du code afin de pouvoir la rogner, l'injecter ou la faire rebondir lors des tests unitaires.

Créez simplement une interface appelée IHashTable, puis créez votre implémentation concrète en implémentant l'interface. Ensuite, faites en sorte que toutes les classes utilisant des tables de hachage utilisent maintenant IHashTable. Puis ajoutez un paramètre à leurs constructeurs à qui accepte un IHashTable.

Ensuite, lorsque vous effectuez un test unitaire, transmettez un faux ou un bout de l'interface IHashTable.

Mocking: http://en.wikipedia.org/wiki/Mock_object

+0

est-il un outil open source pour créer des talons – Arunachalam

+0

RhinoMocks est open source – Grzenio

+0

tout vous suggérer quelques exemples pour la réponse ci-dessus – Arunachalam

Questions connexes