60

Mi rendo conto che si tratta di un duplicato di circa 20 post diversi, ma nessuno di essi è specifico di MVC4 e nessuno di quelli che ho visto risponde veramente a tutte le mie domande. Finora la mia prima incursione nel mondo del TDD è stata a dir poco frustrante. La maggior parte di ciò che ho cercato di fare sembra incompatibile con MVC 4 o quasi impossibile senza utilizzare librerie di terze parti scarsamente documentate che non capisco ancora.Test unitario accuratamente per le applicazioni ASP.Net MVC 4

Quello che voglio essere in grado di fare, è scrivere un test che metterà alla prova le mie azioni del controllore, il modello che stanno passando e The View l'azione sta inviando il modello a. Voglio testare se la vista esiste, voglio testare se il modello che viene passato è il tipo giusto per la vista, mi piacerebbe un modo per testare se funzionerà correttamente. Voglio anche essere in grado di testare i miei percorsi. E testare i filtri di autenticazione?

Voglio un modo per testare l'unità ASP.Net MVC che lascerà molto poco al caso.

Testare l'output del modello di un'azione sembra abbastanza semplice, ma la verifica delle visualizzazioni è stata quasi impossibile.

Quindi, ecco la mia lista di domande:

  1. Una volta ho testare l'azione e ottenere il risultato dell'azione, come faccio a test per vedere se la vista vuole esiste?
  2. Come verificare i percorsi?
  3. Come posso verificare che le mie viste siano elaborate correttamente?
  4. Che cosa è veramente "best practice" per il collaudo dell'unità THOROUGH di ASP.Net MVC 4?
  5. Come si esegue l'autenticazione dei moduli di prova dell'unità?
  6. Come posso testare i filtri di azione dell'unità?

Preferirei utilizzare i progetti di test di Visual Studio incorporati, ma se devo usare NUnit, devo farlo. Devo solo assicurarmi che venga eseguito correttamente.

Grazie in anticipo per le vostre risposte.

EDIT:. Ho anche potuto ottenere NUnit lavorare con il mio MVC4 applicazione a causa di qualche modo incompatibile con la versione di .NET una delle assemblee è stato compilato in

+2

Probabilmente è meglio cercare quelle domande individualmente. Se non compare nulla, fai una domanda a parte per ciascuno. – mxmissile

risposta

59
  1. Making sure a view exists
  2. http://haacked.com/archive/2007/12/17/testing-routes-in-asp.net-mvc.aspx/
  3. http://blog.davidebbo.com/2011/06/unit-test-your-mvc-views-using-razor.html
  4. vedi sotto
  5. How can I unit test my ASP.NET MVC controller that uses FormsAuthentication?
  6. How-to test action filters in ASP.NET MVC?

no. 4: Questa è una domanda difficile. Come si fa a testare nulla completamente?Personalmente, non ho realmente testato le visualizzazioni, se non con i 3 principali browser ei miei due occhi, poiché è difficile testare un sito Web e tutti i suoi componenti senza effettivamente utilizzarlo. Hai attivato JavaScript, CSS styling e sembra diverso tra i diversi browser. Quindi, per me, sembra come testare la visione che è completamente una parte secondaria della usabilità complessiva del tuo sito. Se stai sviluppando un semplice report basato sulla tabella di dati finanziari, prova i dati con difficoltà. Se la tua vista è alla base di un fantastico sito Ajax, forse non testare l'HTML tanto quanto l'esperienza. So che non è una risposta facile, asciutta, ma il livello accettabile di copertura comporta sempre compromessi.

+0

Uso Visual Studio 2013. Ho scaricato il Generatore di test unità per risolvere il problema dell'opzione di Generate Unit Test che non viene visualizzata. Il problema è che quei test unitari che crea sono in visual basic e non in C#. Sai se ci sono aggiornamenti su come utilizzare le guide di Unit Test Generator? Non sono stato fortunato ormai. – user2952272

+2

Nota: il collegamento su # 2 non funziona. Il link di lavoro è qui: http://haacked.com/archive/2007/12/17/testing-routes-in-asp.net-mvc.aspx/ –