2012-05-01 15 views
5

¿Cuál es la forma estándar y de mejores prácticas para realizar pruebas unitarias en una aplicación dotnetnuke? He buscado SO, así como el sitio web de dnn, y no pude encontrar mucha información sobre esto. Supongo que dnn tiene algo preparado para hacer pruebas unitarias, o al menos una biblioteca que se puede conectar. ¿Dónde puedo encontrar más información? Un tutorial sobre el tema sería ideal, pero cualquier recurso sería apreciado.DotNetNuke Unit Testing Facilities and Tutorials

Gracias!

Respuesta

4

No hay mucha información sobre las pruebas dentro de DotNetNuke. Al ser un proyecto basado en WebForms, no ha sido una gran preocupación para muchos de los desarrolladores de la comunidad.

Por ejemplo, puede ver los proyectos de pruebas de unidades dentro de la fuente de DNN, que tienen una serie de enfoques diferentes utilizados. Usan MbUnit y Moq para pruebas unitarias, así como Watin para probar la web frontal.

La técnica principal para crear módulos comprobables es utilizar la integración de WebForms MVP, para que tenga presentadores comprobables y poco compactos en los que pueda insertar dependencias fácilmente. Está el comienzo de un sample module on codeplex, pero nunca se ha desarrollado completamente. Sin embargo, tiene algunos buenos antecedentes en su página de proyecto.

+0

bdukes, gracias por responder. como vengo de un fondo de ruby ​​y php, tengo una nueva pregunta .NET sobre tu respuesta. cuando dice que la integración MVP de WebForms es la técnica principal para crear módulos comprobables, ¿quiere decir que escribe las pruebas de su unidad utilizando MVP y luego conecta su componente MVP ahora probado en DNN? o te refieres a algo completamente diferente? – Jonah

+0

WebForms MVP es un marco para desarrollar su módulo. El marco permite la separación que es difícil de lograr con los métodos estándar de desarrollo de WebForms. Puede usar el marco de prueba que desee ([NUnit] (http://www.nunit.org/), [xUnit.net] (http://xunit.codeplex.com/), [MbUnit] (http://mbunit.com/), [SpecFlow] (http://www.specflow.org/)), así como cualquier marco de burla/aislamiento ([Moq] (https://github.com/Moq/moq), [FakeItEasy] (https://github.com/patrik-hagne/FakeItEasy), [RhinoMocks] (http://hibernatingrhinos.com/open-source/rhino-mocks), [TypeMock] (http: // www. typemock.com/)) – bdukes

2

Para un enfoque de prueba unitaria controlada por datos, tenga en cuenta lo siguiente:

  • crear el archivo app.config para el proyecto de prueba de unidad y copiar secciones relacionadas con "datos", "caching" de web.config de aplicación web DNN

  • Instalar proveedor de almacenamiento en caché antes de ejecutar cualquier prueba: ComponentFactory.InstallComponents(New ProviderInstaller("caching", GetType(CachingProvider)))

1

Cuando dri unidad de datos de prueba módulos Ven:

  • Asegúrese de añadir archivos de núcleo de DNN + + DotNetNuke.Instrumentation.dll PetaPoco si needeed
  • incluir datos & secciones de almacenamiento en caché en app.config (secciones de copia de DNN web.config)
  • inicializar los datos & proveedores de almacenamiento en caché en el código antes de invocar métodos DataProvider:

    ComponentFactory.InstallComponents (nueva ProviderInstaller ("datos", typeof (DataProvider)), nueva ProviderInstaller ("caché", typeof (CachingProvider)));

+0

Agregue un ComponentFactory.Container = new SimpleContainer(); antes de InstallComponents y todo está bien – Jerome2606