No lo llamaría "pruebas unitarias" exactamente, pero he tenido cierto éxito al ejecutar pruebas automatizadas contra una interfaz de usuario de WinForms, y también en la interfaz de usuario web usando WatiN.
Suponiendo que pueda obtener un control para la ventana de la aplicación que desea probar, debería poder crear una secuencia de comandos de una gran cantidad de código C# para probar la funcionalidad de la interfaz de usuario.
Muchas personas condenan la idea de intentar ejecutar pruebas automatizadas contra una IU, porque hay tantas cosas que no se pueden probar de esa manera. Por ejemplo, ninguna prueba automatizada notará que una fuente es fea o que un texto es confuso o que un botón está ligeramente descentrado. No hay duda, para este tipo de cosas definitivamente necesitas una persona humana inteligente que mire la pantalla.
Sin embargo, ese tipo de prueba aparte, definitivamente hay una gran variedad de pruebas repetitivas que pueden automatizarse y realizarse regularmente. La mayoría de las aplicaciones grandes tienen un lote completo de scripts de prueba de regresión que se deben realizar manualmente cada vez que una nueva versión se va a cerrar. Estas pruebas suelen ser algo para lo que se puede entrenar un mono, solo una lista de instrucciones para hacer clic en este enlace, ingresar texto, hacer clic en este botón, verificar el mensaje resultante, etc. Estas cosas son una pérdida terrible del tiempo de su QA tester, y los hace miserables, así que si pueden ser automatizados, genial. Este tipo de pruebas debe ser ejecutada automáticamente por su servidor de compilación todos los días, y podría diseñarse para ser mucho más exhaustiva que cualquier prueba manual.
Una vez más, no encontrará cosas inesperadas extrañas, pero le dará un cierto nivel de confianza de que su pequeño cambio no rompió ninguna otra pantalla que nunca escuchó al otro lado de la aplicación.
Concedido, esto da como resultado un trabajo más continuo para los desarrolladores, porque pequeños cambios en la aplicación podrían romper las pruebas por razones estúpidas, como cualquier prueba automatizada, pero debería ahorrarle mucho tiempo en pruebas y depuración. Si esto vale la pena es para usted decidir, pero creo que es una consideración que no debe descartarse tan rápido como normalmente se ve.
de acuerdo con sus consideraciones. Creo que tener alguna prueba es mejor que nada. Así que me gustaría encontrar un método para escribir rápidamente lotes que me permita aumentar la condición cuando alguien realiza pequeños cambios. – pierocampanelli