2010-02-04 11 views
6

Sto effettuando il test dell'unità e vorrei sapere se è possibile testare alcune funzionalità speciali di una finestra di dialogo o di un modulo con NUnit. Ho provato NUnitForms, ma manca di buona documentazione e sembra che nessuno stia mantenendo il progetto. È vero?Test della logica di Windows Form con NUnit

Se avete esperienza con Windows Form, indicatelo nel modo giusto. Qualsiasi commento o informazione è apprezzata. Grazie!

+0

Come scritto da Colin, vedere http://stackoverflow.com/questions/532994/ui-testing-framework-continuous-integration – yeyeyerman

risposta

3

Ho lo stesso problema con NUnitForms. Posso avviare un modulo e fare clic su un pulsante, ma non riesco a capire come far funzionare i dialoghi, e non riesco a trovarne molto. Penso che questo blog è stato il più utile: http://blogs.msdn.com/john_daddamio/archive/2006/11/06/getting-started-with-nunitforms.aspx

ho dovuto rimappare l'assemblea NUnitForms nel mio app.config per farlo funzionare con la versione più recente in questo modo:

<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)

Spero che questa discussione mi aiuti, ma potrei comunque provare il progetto bianco (http://www.codeplex.com/white).

+0

Il progetto White sembra promettente.Il fatto è che vorrei testare la logica della GUI all'interno del mio server di Continuous Integration, quindi non devo preoccuparmi di eseguire i test su ogni revisione. – yeyeyerman

+1

Hai visto questo: http://stackoverflow.com/questions/532994/ui-testing-framework-continuous-integration – Colin

+0

Grazie per il link! – yeyeyerman

3

Il test della GUI automatizzato tende a essere molto fragile e suppongo che questo sia il motivo per cui NUnitForms non viene mantenuto (se ciò è vero).

Risparmia la sofferenza e osserva l'applicazione di modelli di progettazione come Model View Controller o Model View ViewModel. Ciò consentirà di testare la logica dell'interfaccia utente in modo molto più affidabile.

+2

Un buon consiglio ma non ci sono librerie/modelli MVC mainstream per WinForms (afaik). –

+0

@Henk Holterman: Sì e no: c'è il super-complesso Composite UI Application Block (CAB) di p & p. Non viene mantenuto neanche, ma si potrebbe quasi dire che anche su Windows Form stesso :) –

+0

La logica che voglio testare in un modulo è la logica di validazione dell'input ... Penso che sia ancora ragionevole anche usare il pattern MVC. – yeyeyerman

1

Ho avuto molto successo utilizzando il framework di automazione dell'interfaccia utente fornito in .Net 3.0 e versioni successive. Ho scritto un tutorial che potrebbe aiutarti a iniziare.

0

C'è un esempio molto buono e facile da capire di un framework MVC prodotto da Ayende, vedere this entry sul suo blog per ulteriori dettagli. È un lavoro aggiungendo un'infastruttura molto leggera alla tua applicazione che collega automaticamente i pulsanti agli eventi automaticamente.

Utilizzando questo tipo di framework è necessario non avere alcuna logica nella vista, solo nel Presenter. Quindi puoi facilmente testare la logica dell'unità senza toccare WinForms.

Ho avviato una porta di Effectus su .NET 2.0 e WinForms, è here se interessati.

+0

Ehi, il tuo link las va a una pagina che dice non trovata! : -O – yeyeyerman

+0

Sì, credo che il github sia stato interrotto in precedenza, ma dovrebbe funzionare ora. –