On m'a demandé de réaliser un petit projet parallèle pour fournir une application simple à l'un de nos clients. Normalement, je travaillerais sur du code back-end où j'aurais compris tous mes besoins de test, et je n'ai pas encore eu le plaisir douteux d'écrire des tests pour l'interface graphique, donc je ne sais pas trop comment je dois configurer le code de test et les outils pour un EXE.
Mon premier réflexe a été d'inclure simplement les tests avec le code d'application, mais cela nécessiterait de fournir un certain nombre de dépendances spécifiques aux tests, que j'ai été spécifiquement chargé de ne pas envoyer au client. Je ne suis pas non plus en mesure de retirer de l'argent pour un outil de test spécialement conçu, je dois donc utiliser les outils que j'ai à portée de main ( StoryQ , RhinoMocks et NUnit), ce qui devrait vraiment être plus que suffisant pour tester le comportement d'une application GUI simple. Donc, pour autant que je puisse voir, cela me laisse essayer de trouver un bon équilibre entre garder la conception vraiment simple ou délibérément suringénierie pour les tests. Il semble que je crée l'application avec la logique métier dans une bibliothèque distincte et que je teste la bibliothèque comme je le ferais habituellement, ou que je trouve un autre mécanisme pour me permettre d'exécuter l'exécutable sans casser des modules supplémentaires que la conception de l'application ne fait pas. vraiment besoin.
Edit:
Veuillez noter que cette question concerne la façon de structurer la relation entre NUnit et mon exécutable - par opposition à une DLL - et non pas comment séparer la présentation et la logique métier.
/Éditer
Ma question est donc:
- Existe-t-il une méthode spécifique / recommandée pour configurer une application graphique simple avec des tests unitaires pour me permettre de vérifier correctement l'état et le comportement, en utilisant les outils dont je dispose, et sans recourir à une ingénierie excessive?
- Ai-je oublié quelque chose de fondamental sur la façon dont NUnit doit être invoqué / configuré lors du test d'un EXE (par opposition à une DLL)?
- Pouvez-vous me fournir ou me diriger vers des exemples illustrant comment réaliser tout cela?
Je me rends compte qu'il peut y avoir plus d'une façon de le faire, donc je recherche des directives de mise en œuvre spécifiques basées sur votre expérience.