2011-03-29 23 views
7

Por lo tanto, estoy aprendiendo mucho y tratando de comenzar con asp.net MVC, pruebas unitarias y TDD.Cómo organizar el código y las pruebas con asp.net mvc y pruebas de unidades

Tengo una vaga comprensión de los conceptos involucrados, es decir, un poco más allá del nivel "Hola mundo", pero todavía bastante verde. Estoy listo para que la goma se encuentre con la carretera, pero Me he encontrado mirando el diálogo "Nuevo proyecto" en VS durante la última media hora ... ¿cómo, exactamente, organizas tus pruebas de unidad?

Veo que con el tipo de proyecto de prueba de unidad VS estándar, crea un proyecto separado para las pruebas unitarias. ¿Es así como debo proceder cuando uso NUnit? ¿O deberían colocarse las pruebas en el mismo proyecto que el código que se prueba?

Ninguno de los tutoriales de tipo "Comenzando con la prueba de unidades ..." que he encontrado parecen abordar esto.

Respuesta

8

Las pruebas deben mantenerse en proyectos separados porque no desea implementar el código de prueba en un entorno de producción. Para una solución de proyecto único, probablemente un proyecto de prueba sea suficiente.

Internamente, se puede organizar un proyecto de prueba de la forma que considere conveniente, siempre que sea coherente. Un proyecto de prueba ASP.NET MVC podría tener una carpeta ControllerTests con un archivo .cs de prueba por controlador, reflejando la estructura del proyecto MVC hasta cierto punto. Esto hace que las pruebas sean fáciles de encontrar y se relacionen con el código que están probando.

+0

Acepto que es más fácil seguir la estructura de los controladores de mvc, para cualquiera que no lo sepa, puede hacer clic en "agregar prueba de unidad" desde el menú contextual en una clase de controlador y visual studio hace mucho por usted. – John

2

¿cómo, exactamente, organizas tus pruebas unitarias?

Organizo mis pruebas unitarias para reflejar la estructura de mi proyecto. Así ejemplo abeto si en mi proyecto de ASP.NET MVC tengo

  • Controladores
  • Modelos
  • mapeadores
  • validadores ...

que tienen esas mismas carpetas en mi unidad proyecto de prueba Luego, para cada archivo en el proyecto MVC tengo una prueba de unidad correspondiente. Aquí hay un ejemplo de sample project structure I wrote.

+0

¡Gracias por la muestra! – seanicus

1

Mi formato por lo general ha sido así:

MyMvcApp.Web (The Actual Web Application) 
    |- Controllers 
    |- ViewModels 
    |- Views 
    |- Framework (For specific override points in the MVC Framework) 
MyMvcApp (The class library that contains my domain specific logic) 
    |- SomeFacet (Folder to contain entities, objects, etc) 
    |- Repositories 
MyMvcApp.UnitTests (Test project) 
    |- SomeFacet (Contains tests for specified folder in class library) 
MyMvcApp.IntegrationTests (Test project) 
    |- SomeFacet (Contains tests for specified folder in class library) 
+0

¡Gracias por tu aportación! – seanicus

0

Es más importante entender primero que lo que necesitamos para poner a prueba y lo que las instalaciones están disponibles para este fin. Básicamente es el comportamiento de los objetos en la aplicación en la que necesita enfocarse. Tiene muchos marcos de prueba para elegir, como NUnit Etc. Trabaje en la estructura del proyecto de prueba a medida que avanza.

Cuestiones relacionadas