2013-01-09 70 views
7

Sto facendo test unitari. Non ho idea di come eseguire il test unitario global.asax in asp.net. Global.asax in asp.net rientra nella copertura del test unitario? Inoltre c'è la classe di installazione dell'applicazione che contiene varibles di sistema. Dovrei testarli?Possiamo testare unitamente global.asax in asp.net?

+0

e per quanto riguarda il programma di installazione dell'applicazione? pubblico vuoto Installa (contenitore Castle.Windsor.IWindsorContainer, Castle.MicroKernel.SubSystems.Configuration.IConfigurationStore store) {// something} –

+0

Puoi pubblicare un esempio di codice? – Buzzer

risposta

5

È possibile. Ma non dovresti. Un test unitario, come suggerisce il nome, verifica le unità. Il codice in global.asax o nella configurazione del sistema non è un'unità. I test per queste cose sarebbero strettamente accoppiati al codice e ti darebbero sempre dei falsi fallimenti quando cambi una cosa irrilevante, quindi non ne vale la pena. Ci sono altri livelli nel test delle applicazioni dove diventa rilevante: test di integrazione, automazione, ecc. Non si deve mettere tutto in 'unit test', solo parti ben definite, singole. Per esempio. non testare unitamente il tuo web.config o la configurazione del contenitore DI, ma li testerai su un altro livello.

6

La mia posizione su questo è che non si dovrebbe avere il codice di test unitario nel proprio global.asax.

Il motivo principale è che non ci dovrebbero essere più in là di dichiarazioni e codice di cablaggio. Come già detto Peter Porfy, quel codice dovrebbe essere testato nei test di integrazione.

Se nel tuo global.asax trovi qualche logica che valga la pena di testare l'unità, probabilmente dovresti tenerla fuori e testare queste classi separatamente.

Problemi correlati