2009-02-09 13 views
9

La maggior parte dei post StackOverflow sui test di unità ASP.NET MVC parla di un problema specifico o di una cosa specifica da testare come testing HtmlHelpers. Altri sull'argomento delle migliori pratiche hanno surprisingly few answers. I video disponibili che ho visto sono completely useless secondo me - e la mente è stupefacente long (quando hai guardato un'ora e mezza e non hai imparato nulla).Quali sono le cose più importanti da testare in un'applicazione ASP.NET MVC?

Quello che voglio sapere da persone che sono state in realtà fare questo è:

  • Quali sono le cose più importanti da testare prima
  • Che non ha bisogno di test (urti orrore per me dire ma non sto cercando il 100%)
  • Che cos'è il rigido da testare e come hai superato le difficoltà difficili da testare.
  • Quali cose possono rompere in refactoring che un test non prenderà.

Non sono nuovo su come eseguire il test dell'unità, ma sono davvero nuovo nel realizzarlo in modo coerente. Apprezzerei molto le lezioni apprese da coloro che sono esperti in testing unitario su ASP.NET MVC.

Sono davvero alla ricerca di cose specifiche che potreste scoprire solo dopo averlo provato - non è un consiglio generale come "usare le interfacce" - anche se ovviamente qualsiasi suggerimento è benvenuto.

Oh, e diciamo che ho deciso di utilizzare i test di unità di Microsoft, solo perché è già lì. Penso che tutte le risposte si applicherebbero a tutti i framework di testing.

risposta

1

Non penso che la risposta debba essere specifica per ASP.NET MVC. Come qualsiasi altra applicazione, la cosa più importante da testare è la logica principale. Cioè il codice del modello e le azioni del controllore.

+1

l'ho chiesto così per un motivo. per esempio ci sono cose legate al routing, specifiche classi di action result che le persone che lo stanno usando per testare per un po 'possono essere in grado di offrire consigli su –

7
  • Verificare il percorso. È necessario utilizzare RouteLink per rimuovere l'ambiguità quando si genera un URL nella vista, ma quando si invia un URL, si dipende dal sistema di routing per selezionare il percorso corretto. Quindi verifica che i pattern URL che sostieni in realtà restituiscano il percorso corretto.
  • Verificare le azioni del controller. Utilizza un repository fittizio e verifica che invocare manualmente ogni azione abbia i risultati che ti aspetti.
  • Verificare tutta la logica aziendale nel modello. Questo è ovvio e poco diverso dalle applicazioni non MVC.
  • Testare tutti gli helper di visualizzazione personalizzati scritti. Sebbene in genere non condivido le viste di test, la visualizzazione degli helper è diversa.
  • Prova il tuo JavaScript. Esistono quadri di testing unitario per questo, che testare JavaScript è così facile che tali framework sono appena necessari. Ma testare JavaScript è incredibilmente importante, a causa della tendenza del linguaggio a nascondere gli errori da te.
  • Se sono stati scritti legatori di modelli personalizzati, è necessario prestare particolare attenzione. Per prima cosa, è molto più facile eseguire il debug di un raccoglitore modello tramite un test unitario rispetto a quando è "live" nell'applicazione.
3

mi piacerebbe approfondire azioni di controllo di prova:

  • Verificare che si ottiene la giusta ActionResult. Un reindirizzamento è diverso da una vista.
  • Verificare anche il nome vista previsto. Se ti affidi alla vista predefinita, dovrebbe essere vuota.
  • Verificare di ottenere il modello di visualizzazione corretto.
  • Verificare tutti i rami nella vostra azione. Tenerli al minimo e spostarli a un aiutante/servizio quando crescono troppi.

In breve, verificare qualsiasi cosa dal ActionResult che verrà utilizzato.

Problemi correlati