Estoy probando el motor MVC3 Razor view, y una de las características que estoy explorando es la posibilidad de probar vistas de unidades.Pruebas unitarias MVC3 Razor helpers/views without strings
He visto una serie de ejemplos donde las vistas Razor se pueden compilar en un ensamblado y se pueden representar en una cadena. El problema es que se presenta como una cadena, ¡así que me queda hacer búsquedas de cadenas!
Esto es lo que estoy tratando de hacer.
- Crear un ayudante Razor
- Compilar ayudante
- Run ayudante compilado, pasando en un modelo de vista
- Obtener la salida del ayudante como una especie de estructura/XML/árbol HTML
La razón por la que quiero hacer esto es para poder probar partes específicas de la salida. Es probable que el ayudante escupir HTML que incluye varios residuos de salida. Lo que quiero hacer es ver si hay una casilla de verificación con un valor particular (por ejemplo). Si ha visto las pruebas de Selenium, es similar a lo que me gustaría hacer, excepto que no son pruebas controladas por el servidor.
¿Hay alguna manera de obtener vistas compiladas Razor (u otro motor de vista) para emitir algo distinto de cadenas de caracteres?
Gracias por la excelente respuesta. La razón para probar en el nivel de HTML es probar la lógica en la vista. Por ejemplo, si paso un ViewModel que contiene productos y tiene una propiedad en stock. Si un producto tiene stock == 0, no muestre un enlace de compra. Más tarde, agrego lógica en ViewModel para garantizar que los productos nunca tengan stock == 0, sino que usen IsInStock. propiedad. Quiero una prueba que fallará debido a que no produce el HTML correcto. Una forma de escribir esta prueba es construir un ViewModel legítimo, pasarlo a la vista y verificar que el enlace no se haya generado. ¿Tener sentido? Gracias, –
Sí, sigo. Comprobar que el enlace existe en QUnit sería algo simple como: prueba ("testing for link", function() { ok ($ ('# myLink'). Length == 1, "enlace presente"); }); – Milimetric