¿Puedo usar TDD para la aplicación de GUI? Cómo hacerlo.¿Cómo aplicar el desarrollo controlado por prueba para la aplicación GUI (VC MFC)?
Respuesta
La respuesta que ha evolucionado en los últimos años es, que no se aplican TDD a la interfaz gráfica de usuario, que el diseño de la La interfaz gráfica de usuario de modo que haya una capa debajo de usted puede desarrollarse con TDD. El Gui se reduce a una asignación trivial de controles al ViewModel, a menudo con enlaces de estructura, por lo que se ignora para TDD.
Esto se conoce diversamente como la Presentation Model (Fowler) la arquitectura Model-View-ViewModel y DataModel-View-ViewModel.
Este enfoque elimina la capa de GUI de TDD y la prueba unitaria. No significa que la GUI nunca se pruebe, sino que simplemente reconoce que no es rentable realizar pruebas automatizadas de GUI, particularmente como parte de TDD. La integración y las pruebas de usuario deben cubrir la GUI.
Josh Smith's 2009 WPF article es una explicación detallada de MVVM con algunas pruebas.
Más recientemente, de Houssem Dellai 2016 video Creating Unit Tests for Xamarin Forms Apps XAML muestra una interfaz de usuario con la cota modelo de vista y camina a través de la creación de un proyecto de prueba de unidad
¿Por qué no? Here es un buen artículo, desde object mentor.
He encontrado otra publicación en el blog, TDD - Introduction to Moq. Está relacionado con C# y VB.NET.
Revisar Myth and Misconception con respecto a TDD es una necesidad.
Aquí hay un libro relacionado con .NET, TDD in Microsoft .NET.
Chad Myers tiene un agradable paseo por probar la controladora:
http://www.chadmyers.com/Blog/archive/2007/11/27/tdd-with-asp.net-mvc-3.5-extensions.aspx
- 1. Cómo aplicar el patrón MVC al desarrollo de la GUI
- 2. En desarrollo controlado por prueba PERO en MARCHA ATRÁS
- 3. ¿Por qué debería practicar Desarrollo controlado por prueba y cómo debería comenzar?
- 4. Pruebas de aceptación para Tetris cuando se usa Desarrollo controlado por prueba
- 5. ¿Cómo comprobar si el directorio ya existe en MFC (VC++)?
- 6. Desarrollo controlado por prueba (TDD) para interfaz de usuario (UI) con pruebas funcionales
- 7. Mejores prácticas de desarrollo controlado por prueba usando C# y RhinoMocks
- 8. Creando una GUI con MFC
- 9. ¿Por qué debería usar Desarrollo controlado por características?
- 10. ¿Cómo omito la GUI en la aplicación MFC si existen opciones de línea de comandos?
- 11. Prueba de una aplicación WPF Gui-heavy
- 12. Prueba automatizada de GUI
- 13. Marco de prueba GUI para JavaFX 2
- 14. ¿Cómo se puede implementar el desarrollo impulsado por prueba con el código heredado?
- 15. Prueba de GUI automatizada
- 16. VC++ 10 MFC: ¿Cuál es la forma correcta de hacer la localización?
- 17. Desarrollo impulsado por prueba para una biblioteca JavaScript
- 18. Desarrollo impulsado por prueba para bibliotecas de procesamiento de señal
- 19. Desarrollo impulsado por prueba rápida en Java
- 20. Diseño controlado por el dominio con Zend
- 21. Refactorización y desarrollo impulsado por prueba
- 22. ¿Desventajas del diseño controlado por el dominio?
- 23. ¿Ruby es bueno para el desarrollo de GUI?
- 24. prueba de AIR GUI
- 25. Ayuda con el servidor TCP controlado por evento
- 26. ¿Por qué veo píxeles al aplicar el zoom a la aplicación WPF en Windows?
- 27. ¿Se puede ejecutar la aplicación MFC en un sistema operativo que no sea Windows?
- 28. Marco de prueba GUI automatizado para Android
- 29. ¿Cómo puede terminar una aplicación MFC?
- 30. Prueba DUnit GUI: ¿Puedo forzar 'Aplicación' a una "forma" diferente?
Gran respuesta, gracias. Sin embargo, tenga en cuenta que el enlace a "buenas discusiones" es bastante inútil: apunta a una búsqueda de ViewModel, que es un área masiva que incluye una gran cantidad de discusiones que no tienen nada que ver con TDD. Los enlaces a discusiones específicas serían útiles. He estado profundizando en este tema durante los últimos días y lamentablemente hay poca discusión sobre este tema. –
Cuando escribí mi respuesta, hace 8 años, esa búsqueda fue realmente buena, pero fue un poco tonto esperar que siga así. –