He estado escribiendo algunas pruebas de unidad de base de datos tSQLt (a través de Red Gate SQL Test) en procedimientos que llaman a tablas que contienen columnas (persistentes) recientemente, y tenga en cuenta que si utilizo FakeTable SP, Encuentro que las columnas calculadas no están pobladas (se evalúan como nulas). La columna calculada es clave para la prueba, por lo que no puedo ignorar la columna en la prueba, y prefiero no duplicar la lógica.Pruebas unitarias con tSQLt en columnas calculadas
Estoy evaluando los resultados usando el tSQLt.AssertEqualsTable SP, por lo que quiero asegurarme de que los valores de columna sean los mismos en ambos.
En la práctica, he solucionado esto al no usar FakeTable, sino al usar una declaración de transacción de retrotracción (parcial) al final de la prueba (por publicación de blog en http://sqlity.net/en/585/how-to-rollback-in-procedures/) o eliminar explícitamente los valores de prueba.
Estoy seguro de que debe haber una forma mejor de codificar esta prueba y agradecería cualquier sugerencia.
Gracias Sabastian, eso es muy útil. Intenté combinar las dos pruebas, pero como usted señala, estas deberían ser pruebas diferentes. – DaveGreen