Je suis intéressé à pouvoir instancier plusieurs tests avec des arguments constructeurs qui lui sont passés à l'exécution par une méthode statique ou une propriété retournant un IEnumerable.Nunit a paramétré TestFixtures avec des paramètres définis lors de l'exécution?
Dans Nunit 2.5, ils ont introduit des tests paramétrés et des montages d'essai. Ils vous permettent d'écrire un seul test et de l'exécuter avec plusieurs entrées fournies à l'aide de l'attribut TestCase, et d'écrire une seule classe de test et d'en instancier plusieurs instances avec des arguments constructeurs différents respectivement. En plus de cela, il est possible de créer plusieurs cas de test basés sur la sortie d'une propriété ou d'une méthode, en utilisant l'attribut TestCaseSource. Cela utilisera la sortie d'une méthode/propriété qui implémente IEnumerable pour créer un ensemble de testcases, un par objet dans la liste. C'est ce que j'aimerais pouvoir faire, mais pas au niveau du test.
quelques informations sur mon cas d'utilisation:
Je teste des logiciels de simulation, et un « environnement de simulation » qui doit être chargé (à partir d'un objet sérialisé) avant que les simulations peuvent être exécutées. Il y a environ 5 types différents de sim, donc ma classe de test a 5 méthodes de test (une pour chaque type de sim). J'utilise actuellement l'héritage (au lieu d'appareils paramétrés) pour exécuter les scénarios de test dans plusieurs environnements de simulation (une demi-douzaine environ), qui ont été extraits de données de production. Mon problème vient du fait que dans une tentative récente d'augmenter la couverture de code, nous avons généré automatiquement toutes les combinaisons possibles de composants de simulation, résultant dans plus de 100 environnements SIM. Je ne veux pas créer de classes héritées pour chacun d'entre eux, donc j'utilise TestCaseSource avec une propriété qui retourne tous les espaces de travail dans un dossier et modifie les tests pour qu'ils (re) chargent l'environnement sim dans le test lui-même. chaque cas de test.
Idéalement, je voudrais avoir un appareil par environnement de simulation, et déterminer combien/quoi ils sont à l'exécution. Je sais que je peux faire le premier via le codage en dur des chemins de l'environnement sim dans plus de 100 attributs TestFixture, puis-je faire le dernier?
Malheureusement, le code ne fonctionne pas. 'env = new T (n, s);' donne l'erreur: "'T': ne peut pas fournir d'arguments lors de la création d'une instance de type variable" – urig