2012-05-01 3 views
5

Qual è il metodo standard migliore per eseguire il test delle unità in un'app dotnetnuke? Ho cercato SO così come il sito Web dnn e non sono riuscito a trovare molte informazioni su questo. Immagino che dnn abbia qualcosa da fare per fare dei test unitari, o almeno una libreria che può essere collegata. Dove posso trovare maggiori informazioni? Un tutorial sull'argomento sarebbe l'ideale, ma qualsiasi risorsa sarebbe apprezzata.DotNetNuke Unit Testing Facilities and Tutorials

Grazie!

risposta

4

Non ci sono molte informazioni sui test all'interno di DotNetNuke. Essendo un progetto basato su WebForms, non è stato una forte preoccupazione di molti degli sviluppatori della comunità.

Per alcuni esempi, è possibile esaminare i progetti di test dell'unità all'interno della sorgente DNN, che utilizzano diversi approcci diversi. Usano MbUnit e Moq per i test delle unità, oltre a Watin per testare il front-end del web.

La tecnica principale per la realizzazione di moduli testabili consiste nell'utilizzare l'integrazione MVP di WebForms, in modo da disporre di relatori testabili e liberamente accoppiati in cui è possibile iniettare facilmente le dipendenze. C'è l'inizio di uno sample module on codeplex, ma non è mai stato completamente aggiornato. Tuttavia, ha qualche buon background nella sua pagina del progetto.

+0

bdukes, grazie per la risposta. come vengo da uno sfondo rubino e php, ho newb. Domanda sulla tua risposta. quando dici che l'integrazione MVP di WebForms è la tecnica principale per creare moduli testabili, vuoi dire che scrivi i tuoi test unitari usando MVP e poi collega il componente MVP ora testato a DNN? o intendevi qualcos'altro interamente? – Jonah

+0

WebForms MVP è un framework per lo sviluppo del modulo. Il framework consente una separazione difficile da raggiungere con i metodi di sviluppo standard di WebForms. È possibile utilizzare qualsiasi framework di testing desiderato ([NUnit] (http://www.nunit.org/), [xUnit.net] (http://xunit.codeplex.com/), [MbUnit] (http://mbunit.com/), [SpecFlow] (http://www.specflow.org/)), nonché qualsiasi struttura di derisione/isolamento ([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

Per un approccio unit testing data-driven, essere a conoscenza di seguito:

  • Crea file app.config per il progetto prova di unità e copiare sezioni relative ai "dati", "caching" dal web.config di DNN web app

  • Installare fornitore di cache prima di eseguire qualsiasi test: ComponentFactory.InstallComponents(New ProviderInstaller("caching", GetType(CachingProvider)))

1

Quando dri unità di dati di test Moduli ven:

  • assicurarsi di aggiungere i file core DNN + DotNetNuke.Instrumentation.dll + PetaPoco se needeed
  • includere dati & sezioni caching in app.config (sezioni di copia da DNN web.config)
  • inizializzare i dati & fornitori di cache nel codice prima di richiamare metodi dataProvider:

    ComponentFactory.InstallComponents (nuovo ProviderInstaller ("dati", typeof (FornitoreDati)), nuovo ProviderInstaller ("caching", typeof (CachingProvider)));

+0

Aggiungi una ComponentFactory.Container = new SimpleContainer(); prima di InstallComponents e tutto è ok – Jerome2606