Regardez la conception de votre projet. Si elle est proche de la disposition MVC ou de l'une de ses alternatives, vous devriez avoir des niveaux distincts d'assemblages différents. Faire un sous-ensemble de test pour chaque niveau de votre conception.
Notre projet de test s'exécute généralement à la place du projet qui crée le fichier EXE. Notre projet EXE est un shell fin qui transmet un événement et des informations à un assembly rempli de classes de contrôleurs contenant le code que la plupart des personnes placent dans un projet EXE. Cela permet au projet de test de prétendre être le fichier EXE pour 90% du processus de test normal.
Nous sommes encore en train d'élaborer la meilleure solution pour les cas de test réels. À l'heure actuelle, nous avons plusieurs niveaux principaux de notre utilitaire de cadre, objets Applicaiton, cadre de l'interface utilisateur, les commandes, les contrôleurs d'interface utilisateur et EXE. Nous avons un assembly pour chaque niveau sauf EXE (qui est testé manuellement). Lorsque nous modifions un assemblage, nous chargeons l'ensemble de test pour ce niveau. Lorsque nous devons faire quelque chose qui touche tous les niveaux, nous devons charger tous les assemblages de test.
Lors de notre processus de construction d'un seul bouton, nous exécutons le projet de test exe. (Nous avons un utilitaire séparé pour cela).
Essayez InternalsVisibleToAttribute (assemblage des cibles), vos tests unitaires peuvent accéder aux membres internes. Privé nécessite hackarounds en utilisant la réflexion, donc je les marque toujours internes si elles nécessitent des tests indépendants. – cfeduke
(Et je pense que le PO fait déjà ce que vous avez suggéré, il se demande si la solution devrait avoir plusieurs projets de test ou s'il devrait y avoir une solution séparée qui contient juste des projets de test.) – cfeduke
cfeduke: merci de m'indiquer InternalsVisibleToAttribute! – FOR