2009-04-24 57 views
11

Dove posso trovare un buon tutorial su TDD con ASP.NET MVC 1.0? Preferirei un video tutorial ma un tutorial di testo andrebbe bene. Ho un nuovo progetto che inizia presto e voglio iniziare con il piede giusto.TDD con ASP.NET MVC 1.0

risposta

2

Check out here. Il negozio di MVC è altamente raccomandato.

4

Qualsiasi tutorial su TDD sarà utile per MVC. Ho fatto TDD per qualche tempo e ho scoperto che si trattava di una transizione naturale in MVC. Ci sono alcune peculiarità che ho trovato che devono essere affrontate.

  1. Spesso è necessario prendere in giro il HttpContext, il che significa che è necessario assegnare un ControllerContext al controller dopo che è creato come questo è l'unico modo per iniettare il finto. Il contesto verrà utilizzato per fornire gli oggetti Session, Request e Response nel controller (anche prendendoli in giro). Le nuove classi HttpContextBase, HttpSessionStateBase, ... rendono questo molto più facile da fare.

  2. A causa di (1), dedicare un po 'di tempo a mettere insieme alcune classi di supporto in una libreria di classi separata che può essere utilizzata da tutti i progetti di test. Queste classi helper dovrebbero contenere metodi che forniscono configurabili (o più metodi per fornire configurazioni specifiche) dei contesti irrisolti. Ciò contribuirà a mantenere i tuoi test compatti.

  3. Utilizzare e assegnare un ValueProvider per testare metodi che accettano parametri se non si utilizza ModelBinding (con i parametri corrispondenti nella firma) per un'azione del controllore. Ciò ti consentirà di utilizzare TryUpdateModel/UpdateModel senza aggiungere codice al controller per ottenere dati dalla richiesta in questi metodi.

  4. Utilizzare una struttura di derisione - se questo non è ovvio da sopra. Sarà molto più facile scrivere i test se prendi in giro le dipendenze. Scrivere il tuo mock, IMO, non vale la pena, anche se so che gli altri non condividono questa opinione. Immagino che questo non sia univoco per MVC, ma ho pensato di parlarne.

  5. Impostare un set separato di test che utilizza la riflessione per verificare che gli appropriati attributi con proprietà appropriate vengano impostati sui metodi. MVC fa un uso pesante degli attributi per la sicurezza e altri aspetti trasversali. Questi devono essere testati pure.