2010-02-04 18 views
6

Estoy inmerso en pruebas unitarias y me gustaría saber si es posible probar alguna funcionalidad especial de un diálogo o un formulario con NUnit. He intentado NUnitForms, pero carece de buena documentación y parece que nadie está manteniendo ese proyecto. ¿Es verdad?Prueba la lógica de Windows Forms con NUnit

Si tiene experiencia en probar Windows Forms, por favor, indíqueme el camino correcto. Cualquier comentario o información son apreciados. ¡Gracias!

+0

Según lo escrito por Colin, vea http://stackoverflow.com/questions/532994/u-testing-framework-continuous-integration – yeyeyerman

Respuesta

3

Estoy teniendo el mismo problema con NUnitForms. Puedo iniciar un formulario y hacer clic en un botón, pero no puedo entender cómo funcionan los diálogos, y no puedo encontrar nada al respecto. creo que este blog fue el más útil: http://blogs.msdn.com/john_daddamio/archive/2006/11/06/getting-started-with-nunitforms.aspx

que tenía que volver a asignar el conjunto NUnitForms en mi app.config para conseguir que funcione con la última versión de esta manera:

<configuration> 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
     <dependentAssembly> 
     <assemblyIdentity name="nunit.framework" 
      publicKeyToken="96d09a1eb7f44a77" 
      culture="neutral" /> 
     <bindingRedirect oldVersion="2.2.7.0" newVersion="2.5.2.9222" /> 
     </dependentAssembly> 
    </assemblyBinding> 
    </runtime> 

(http://duncanjasmith.blogspot.com/2007/08/using-nunitforms-with-nunit-framework.html)

Espero que este hilo me ayude, pero aún podría intentar proyectar blanco (http://www.codeplex.com/white).

+0

El proyecto Blanco parece prometedor.La cuestión es que me gustaría probar la lógica de la GUI dentro de mi servidor de Integración Continua, para no tener que molestarme en ejecutar las pruebas en cada revisión. – yeyeyerman

+1

¿Has visto esto: http://stackoverflow.com/questions/532994/ui-testing-framework-continuous-integration – Colin

+0

¡Gracias por el enlace! – yeyeyerman

3

La prueba de GUI automatizada tiende a ser muy frágil, y supongo que es por eso que NUnitForms no se mantiene (si eso es cierto).

Ahórrese la agonía y observe la aplicación de patrones de diseño como Model View Controller o Model View ViewModel. Esto le permitirá probar de manera unitaria la lógica de UI de una manera mucho más robusta.

+2

Un buen consejo, pero no existen las librerías/plantillas de MVC convencionales para WinForms (afaik). –

+0

@Henk Holterman: Sí y no: existe el Bloque de aplicación de interfaz de usuario compuesta (CAB) supercomplejo de p & p. Tampoco se mantiene, pero casi podría decirse lo mismo sobre Windows Forms :) –

+0

La lógica que deseo probar en un formulario es la lógica de validación de entrada ... Creo que sigue siendo razonable incluso con el patrón MVC. – yeyeyerman

1

He tenido mucho éxito utilizando el marco de automatización de UI que viene como parte de .Net 3.0 y posterior. Escribí un tutorial que podría ayudarlo a comenzar.

0

Hay un ejemplo muy bueno y fácil de entender de un framework MVC producido por Ayende, ver this entry en su blog para más detalles. Es un trabajo al agregar una infraestructura muy ligera a su aplicación que conecta los botones a eventos automáticamente para usted.

Al utilizar este tipo de marco, no puede tener ninguna lógica en su Vista, solo en su Presentador. Luego puede probar la lógica de la unidad sin tocar WinForms.

He comenzado un puerto de Effectus para .NET 2.0 y WinForms, es here si está interesado.

+0

¡Oye, el enlace de las últimas va a una página que dice no encontrado! : -O – yeyeyerman

+0

Sí, creo que github se rompió anteriormente, pero debería estar funcionando ahora. –

Cuestiones relacionadas