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
Répondre
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.
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
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.
- 1. Comment tester les événements du clavier jQuery?
- 2. Crochet du clavier ... n'obtenant pas les caractères majuscules ou minuscules
- 3. fonctionnalité de pré-extraction du crochet dans git
- 4. Méthodes possibles pour tester l'automatisation du projet ASP.NET2.0/ADO.NET
- 5. Crochet clavier Java
- 6. façon discrète tester JavaScript avec du concombre?
- 7. Le crochet du clavier modifie le comportement des touches
- 8. Comment tester les commandes du serveur asp.net
- 9. Crochet de clavier de bas niveau C# ne fonctionne pas
- 10. Comment tester DelayedJob avec du concombre?
- 11. Utilisation du nez pour tester le code dépendant de txmongo
- 12. Comment tester des applications NHibernate: quatre éléments spécifiques pour tester
- 13. Alternatives pour tester SMTP?
- 14. Outils pour tester les performances du service Windows
- 15. Utilisation du simulateur iOS pour tester des sites Web
- 16. Test du 'Ctrl' du clavier en C#
- 17. Comment faire pour tester bootloader
- 18. XPath ou XQuery et tester l'ordre
- 19. Comment tester DBNull pour ne pas tomber en panne avec "Colonne .... n'appartient pas à la ligne du tableau"?
- 20. JApplet ne s'arrêtant pas ou ne réagissant pas à l'entrée du clavier
- 21. quiconque utilise perfectomobile pour tester?
- 22. Comment écrire (tester) du code qui ne sera pas optimisé par le compilateur/JIT?
- 23. Internet Explorer 7 - Javascript 'non défini' ne pas tester
- 24. Application C# pour tester le microphone
- 25. Comment tester la proximité du contour d'un QGraphicsPathItem?
- 26. Comment tester un homme dans le proxy HTTPS du milieu?
- 27. Comment tester la méthode de rendu du contrôleur de Grail?
- 28. Ruby - tester chaque élément du tableau, obtenir un résultat
- 29. Comment tester/spec Sinatra & MongoDB API avec du concombre?
- 30. Comment tester la compatibilité du navigateur sous Linux
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. –
@Frank Schwieterman: Je suis peut-être d'accord, oui. Pourriez-vous pointer vers un tutoriel qui couvre ce cas s'il vous plaît? –
Feriez-vous cela dans Win32? Je ne sais pas que l'accrochage au clavier peut être fait avec un composant C#/CLR. –