2009-03-24 6 views
2

Mon projet génère peu de valeurs (méthode de partitionnement égale) pour chaque type de données en obtenant les valeurs Minimum et Maximum. Je fais cela en générant des valeurs pour les tests fonctionnels, je passe en fait ces valeurs au partenaire nunit, max amd min sont applicables à int, float, double etc., ces valeurs sont des données de test.générer des valeurs aléatoires pour le test unitaire Type de données de la table Hast

Au départ, je 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 la table de hachage?

+0

Quel serait le minimum et un maximum valeurs pour les types de collection. SVP clarifier le comportement que vous voulez tester clairement. – abhilash

+0

public DataSet MySampleMethod (int param1, chaîne param2, Hashtable ht) pour tester cette fuctions je peux passer des valeurs pour int et string mais comment vais-je passer les données de test pour cette fonction. ou comment les données de test sont-elles générées pour la table de hachage – Arunachalam

Répondre

2

d'abord - je toujours semences mes valeurs aléatoires pour les tests unitaires, de sorte que bon répétables - cependant, quelque chose comme (à l'aide Dictionary<,> au lieu de HashTable, mais équivalent):

 Random rand = new Random(123456); // note seed 
     Dictionary<int, double> lookup = new Dictionary<int, double>(); 
     for (int i = 0; i < 5000; i++) 
     { 
      lookup[rand.Next(100000)] = rand.NextDouble(); 
     } 
0

Vous ne devez pas utiliser de données aléatoires pour les tests unitaires. Un test peut réussir ou échouer au hasard selon les données choisies, et lorsque vous essayez de découvrir pourquoi il a échoué, vous pouvez avoir beaucoup de mal à déboguer le code parce que vous ne pouvez pas répéter l'échec de manière prévisible.

+0

Tant que vous placez le randomizer, il n'y a rien d'imprévisible sur la plupart des RNG, et peut donc être une approche raisonnable pour obtenir une couverture uniforme (dans le sens des probabilités) sans avoir à tester chaque nombre la gamme Int32, par exemple. Je l'utilise dans les tests de sérialisation, par exemple. –

+0

Si vous générez le générateur aléatoire, vous n'obtenez pas de valeurs aléatoires. :) – Guffa

+0

ma recherche est ce type de données que vous devez générer afin de tester une fonction qui a une table de hachage a le type de données – Arunachalam

Questions connexes