2010-01-26 3 views
0

Je n'ai jamais utilisé le TDD et les tests unitaires "correctement", mais j'aimerais apprendre quelques techniques. Pourriez-vous s'il vous plaît m'aider avec l'idée sur la rédaction des méthodes de test pour ce cas pas si testable (à mon avis). La classe que je veux tester n'a pas encore été écrite (je me souviens, je dois d'abord écrire le test), mais elle aura une méthode pour accrocher la combinaison de touches de raccourci Windows (passée en paramètre) événement lorsque cette combinaison de touches est enfoncée. Alors, comment puis-je tester un tel cas? Ai-je besoin d'écrire la routine de simulation de la touche principale en premier? Ai-je besoin d'un test unitaire pour la simulation de la touche ou le test du crochet de raccourci annulera-t-il le besoin? Est-ce un test unitaire ou est-ce appelé d'une autre façon? Le point de cette question est plutôt éducatif, je comprends parfaitement que ce n'est pas le meilleur cas pour les tests unitaires et ne vaut probablement pas la peine. Je veux juste utiliser un scénario non trivial pour une meilleure compréhension des principes.Pour tester ou ne pas tester - fonctionnalité du crochet du clavier

+0

Ce n'est pas vraiment une question, c'est plus une tâche. Il y a beaucoup de tutoriels sur le web que vous pouvez utiliser avant de demander à SO d'en écrire un pour vous. –

+0

@Frank Schwieterman: Je suis peut-être d'accord, oui. Pourriez-vous pointer vers un tutoriel qui couvre ce cas s'il vous plaît? –

+0

Feriez-vous cela dans Win32? Je ne sais pas que l'accrochage au clavier peut être fait avec un composant C#/CLR. –

Répondre

0

J'ai tendance à être d'accord avec cmw.

L'approche générale est de test unitaire la logique du code que vous avez écrit, et non la plomberie vous dépendent de Windows (ou tout autre en dehors de « service »)

Test de la fonctionnalité de presse de clavier réel, l'OMI, serait un test "d'intégration". Quelque chose fait dans le cadre d'un script de test, par exemple, qui serait effectué par QA.

La clé de l'unité de test de ce scénario consiste à découpler la dépendance à l'action de la touche de la logique dans la méthode qui répond à la touche. C'est là que les tests unitaires deviennent très utiles. Ils mettent en évidence les zones de votre code qui peuvent être re-factorisées pour adhérer au SRP.

+1

Alors peut-être expliquer les tests d'intégration, et comment il irait faire le test d'intégration? Comme les tests d'intégration font toujours partie du processus TDD ... – Sekhat

0

Je suppose que vous commenceriez d'abord en écrivant un test qui a appelé directement la méthode Hook et en vérifiant que a) un événement a été levé ou b) une valeur a été définie dans la classe testée.

Les choses difficiles comme un simulateur d'événements de clavier viendraient plus tard (si cela est même nécessaire). Ce serait la première étape et influencerait la façon dont vous concevez votre classe de crochet. Il devrait, espérons-le, l'influencer de telle sorte que votre classe de hooks soit suffisamment extensible pour fonctionner avec les raccourcis Windows et avec vos tests unitaires.

Questions connexes