Puis-je utiliser TDD pour une application graphique? Comment le faire.Comment appliquer le développement piloté par les tests pour une application GUI (VC MFC)?
Répondre
La réponse qui a évolué au cours des dernières années est, vous ne sont pas applicables TDD à l'interface graphique, vous concevez la GUI de telle sorte qu'il y a une couche juste en dessous de vous peut développer avec TDD. Le Gui est réduit à un mappage trivial de contrôles au ViewModel, souvent avec des liaisons de structure, et est donc ignoré pour TDD.
Ceci est connu sous le nom d'architecture Presentation Model (Fowler) Model-View-ViewModel et DataModel-View-ViewModel.
Cette approche supprime la couche GUI de TDD et de test unitaire. Cela ne signifie pas que le GUI n'est jamais testé, mais reconnaît simplement qu'il n'est pas rentable de poursuivre les tests GUI automatisés, en particulier dans le cadre de TDD. L'intégration et les tests utilisateur doivent couvrir l'interface graphique.
Josh Smith's 2009 WPF article est une explication détaillée de MVVM avec quelques tests.
Plus récemment, Houssem 2016 video Creating Unit Tests for Xamarin Forms Apps de Dellai montre une interface utilisateur XAML avec ViewModel lié et promenades à travers la création d'un projet de test unitaire
Pourquoi pas. Here est un bon article, de object mentor.
Trouvé un autre article de blog, TDD - Introduction to Moq. C'est lié à C# et VB.NET.
La vérification de Myth and Misconception concernant TDD est un must.
Voici un livre en rapport avec .NET, TDD in Microsoft .NET.
Tchad Myers a une belle promenade à travers le test du contrôleur:
http://www.chadmyers.com/Blog/archive/2007/11/27/tdd-with-asp.net-mvc-3.5-extensions.aspx
- 1. Exemples physiques de conception pour la testabilité et le développement piloté par les tests
- 2. Développement piloté par test pour le composant C++ XPCOM?
- 3. Pourquoi devrais-je pratiquer le développement piloté par les tests et comment devrais-je commencer?
- 4. À quoi sert le développement piloté par les modèles?
- 5. Développement d'une application GUI Builder
- 6. enveloppant une application MFC Gui dans une DLL (ou quelque chose d'autre) pour .NET interop
- 7. Création de ressources dans une DLL pour réutilisation, MFC/VC++
- 8. Rendre une application MFC internationale
- 9. Comment déployer une application MFC?
- 10. Développement piloté par domaine en C# - exemple d'application Web
- 11. Passage de MFC à QT ou WTL (ou autre boîte à outils GUI) recommandé pour le développement de Windows CE?
- 12. VC++ tri du bloc d'édition MFC
- 13. Développement sous GUI sous Linux
- 14. Configuration de 'Cassini' (serveur de développement ASP.NET) pour les cartes CAC pour les tests - Comment?
- 15. comment ajouter une référence dans visualstudio2005 pour le projet vC++
- 16. Comment modifier le domaine "www.example.com" par défaut pour les tests dans les rails?
- 17. Application basée sur le conteneur MFC
- 18. Un exemple de code d'interface utilisateur piloté par les métadonnées?
- 19. Meilleures pratiques pour appliquer des modifications à une application SharePoint
- 20. Versions MFC pour Visual Studio
- 21. Comment désactiver le TextInputPanel par défaut pour une application?
- 22. Tests unitaires C++ avec Microsoft MFC
- 23. Bitmap XY dans une application MFC
- 24. CSocket :: Créer une exception de lancement dans mon application MFC
- 25. Comment créer une interface de ligne de commande pour une application GUI Cocoa?
- 26. VC++: Comment empêcher esc de fermer une boîte de dialogue (pas mfc)
- 27. gui pour le programme mpi
- 28. Comment organiser un projet de conception piloté par domaine?
- 29. Appliquer le style WPF par défaut
- 30. Gui pour KDE et Gnome
de Grande réponse, merci. Notez, cependant, que le lien vers de «bonnes discussions» est pratiquement inutile - il pointe vers une recherche de ViewModel qui est une zone massive qui inclut un grand nombre de discussions qui n'ont rien à voir avec TDD. Des liens vers des discussions spécifiques seraient utiles. J'ai creusé ce sujet au cours des derniers jours et il y a malheureusement peu de discussions sur ce sujet. –
Quand j'ai écrit ma réponse, il y a 8 ans, cette recherche était en effet une bonne, mais c'était un peu bête de s'attendre à ce que ça reste comme ça. –