Sto provando il motore di visualizzazione Razor MVC3 e una delle funzionalità che sto esplorando è la possibilità di visualizzare le viste dell'unità.Test unità MVC3 Assistenti per il rasoio/viste senza stringhe
Ho visto un certo numero di esempi in cui le viste del rasoio possono essere compilate in un assieme e trasformate in una stringa. Il problema è che esegue il rendering come una stringa, quindi sono rimasto con le ricerche di stringhe!
Ecco cosa sto cercando di fare.
- Creare un aiutante Razor
- Compile aiutante
- Run aiutante compilato, passando in un ViewModel
- Prendi l'uscita del soccorritore, come una sorta di struttura/XML/albero HTML
Il motivo per cui voglio farlo è che posso testare parti specifiche dell'output. L'helper probabilmente sputerà HTML che include vari gunk di output. Quello che voglio fare è vedere se c'è una Checkbox con un valore particolare (per esempio). Se hai visto i test del selenio, è simile a quello che vorrei fare, tranne che non come test guidati da server.
C'è un modo per ottenere viste Razor (o altro motore di visualizzazione) compilate per emettere qualcosa di diverso dalle stringhe?
Grazie per l'eccellente risposta. Il motivo per il test a livello HTML è di testare la logica nella vista. Ad esempio, se si passa in un ViewModel che contiene prodotti e ha una proprietà di magazzino. Se un prodotto ha stock == 0, non mostrare un link di acquisto. Successivamente, aggiungo la logica nel ViewModel per garantire che i prodotti non abbiano mai stock == 0, ma invece utilizzare IsInStock? proprietà. Voglio un test che fallirà perché non produce il codice HTML corretto. Un modo per scrivere questo test è costruire un ViewModel legittimo, passarlo alla vista e controllare che il link sia/non sia generato. Ha senso? Grazie, –
Sì, seguo. Verificare che il collegamento esista in QUnit sia qualcosa di semplice come: test ("testing per link", function() { ok ($ ('# myLink'). Length == 1, "link present"); }); – Milimetric