2013-01-03 18 views
5

In Web Form di ASP.NET, ho utilizzato Selenium per registrare ed eseguire i test Web e dell'interfaccia utente in numerosi progetti.Come eseguire test Web per le visualizzazioni ASP.NET MVC?

So che siamo in grado di unità di controller e modelli di test in ASP.NET MVC molto facilmente.

Che dire di Visualizzazioni?

Verificate anche le viste? Se non come assicurarsi che le viste, che sono renderizzate da azioni del controllore, contengano le logiche e il comportamento previsti?

Direi che gli stessi strumenti di test Web utilizzati in WebForms, come WatiN e Selenium, potrebbero essere utilizzati anche qui, non sono sicuro?

In tal caso, quale sarebbe la differenza tra WebTesting in WebForms e WebTesting in MVC?

+1

Non è corretto, potrebbe essere necessario testare anche le viste. Possono esserci anche logiche (ad es. Javascript, chiamate di azioni di controllo, navigazioni, ecc.) E si potrebbe desiderare di assicurarsi che si comportino come ci si aspetterebbe che facciano. –

risposta

8

Che dire di Visualizzazioni?

Erm, selenio e WatiN.

In realtà, cosa ti fa pensare che le visualizzazioni ASP.NET MVC siano diverse dai classici Web Form di ASP.NET per quanto riguarda i test di integrazione? Voglio dire, sputano tutti HTML alla fine della giornata. Questo è ciò che i browser e cose come il Selenio capiscono. Chi sputa questo HTML non è molto importante. Ciò che ti interessa in un test di integrazione è che quando un utente lambda fa clic su un pulsante alfa dopo aver inserito la beta nel campo di testo gamma hi ha ottenuto questo Welcome User Phi nella pagina HTML risultante, vero? Davvero non ti importa di cose come ASP.NET MVC o meno di cose come ASP.NET MVC Views.

A proposito, è possibile utilizzare Selenium e WatiN con PHP. O con Java Servlet se sei un fan di loro. Non importa la tecnologia lato server che stai utilizzando. Ciò che conta in un test di integrazione sono gli scenari che hai precedentemente definito.

In tal caso, quale sarebbe la differenza tra WebTesting in WebForms e WebTesting in MVC?

Nessuno.

1

Penso che ci siano differenze tra ASP.NET MVC e WebForms quando si tratta di test di integrazione basati su browser, in quanto i diversi aspetti lato server di questi framework portano a diversi approcci di test.

Prendere un framework che supporti questo, ad esempio Seleno. Utilizza il selenio sotto il cofano, ma astrae tutte le interazioni del browser in oggetti della pagina C, che possono quindi essere utilizzati in modo molto fluido nei test C#.

Esistono numerose estensioni e convenzioni che assistono con molte operazioni comuni di automazione del browser, come il clic sui pulsanti o l'estrazione di dati dalle tabelle.

Ma perché lo porto come una risposta a questa domanda? Seleno è particolarmente utile per .NET MVC poiché gli oggetti Page possono essere generici, digitati su ViewModel per una particolare vista (o Vista parziale) che crea un'associazione fortemente tipizzata quando si scrive un oggetto pagina corrispondente per quella vista.

È l'aspetto ViewModel di MVC che apre questo tipo di approccio; Penso che sarebbe più complicato farlo con WebForms.