Question

Mon projet génère quelques valeurs (même méthode de partitionnement) pour chaque type de données en obtenant le minimum et les valeurs maximales. Je fais ces valeurs de production pour les tests fonctionnels, je passe en fait ces valeurs au partenaire nunit, amd max min sont applicables int, float, double, etc., ces valeurs sont données de test.

Dans un premier temps pour les types I généré de données de base comme int, float, double, string 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?

Était-ce utile?

La solution

D'abord - je toujours mes ensemence valeurs aléatoires pour les tests unitaires, de sorte que bon répétables - cependant, quelque chose comme (en utilisant au lieu de Dictionary<,> 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();
        }

Autres conseils

Vous ne devriez pas utiliser des données aléatoires du tout pour les tests unitaires. Un test peut passer ou tomber en panne au hasard selon les données choisies, et lorsque vous essayez de savoir pourquoi il a échoué, vous pouvez avoir un moment très difficile débogage du code, car vous ne pouvez pas répéter l'échec d'une manière prévisible.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top