Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Actualización: noviembre 2007
Puede usar pruebas unitarias de base de datos para establecer un estado de referencia de una base de datos y, a continuación, comprobar los cambios que realice en los objetos de base de datos. El primer paso es escribir conjuntos de pruebas T-SQL que actúen sobre un objeto de base de datos determinado y comprueben que dicho objeto funciona correctamente. A continuación, al cambiar el esquema subyacente, use estas pruebas para comprobar que los cambios no han afectado a la funcionalidad existente. Puede escribir pruebas unitarias que evalúen los cambios del diseño de base de datos para asegurarse de que se aplican de la forma esperada y sin producir errores. Las pruebas unitarias de base de datos complementan a las pruebas unitarias de software creadas por los desarrolladores de software. Ambos conjuntos de pruebas unitarias son necesarios para administrar los cambios globales en la aplicación.
Para escribir pruebas unitarias, primero debe crear un entorno aislado de desarrollo de bases de datos, independiente de la base de datos de producción. Use Visual Studio Team System Database y siga estos pasos básicos:
Cree un proyecto de base de datos
Importe en el proyecto el esquema de la base de datos de producción
Implemente el proyecto de base de datos para crear una base de datos que use el mismo esquema que la base de datos de producción
Llene la base de datos con datos de prueba
Tras establecer el entorno aislado de desarrollo de base de datos y llenar la base de datos, puede empezar a escribir pruebas unitarias para evaluar los objetos de base de datos en ese entorno. Cuando haya probado los objetos de la base de datos, podrá usar estas pruebas unitarias para detectar regresiones de funcionalidad a causa de cambios aplicados a la base de datos. Como estos cambios se prueban en un entorno de desarrollo aislado, no pone en peligro la base de datos de producción. Después de haber probado completamente los cambios, puede implementar las pruebas unitarias en un entorno de pruebas más amplio, que contenga los cambios de otro miembro del equipo. Esto le permitirá identificar y corregir rápidamente las regresiones debidas a cambios adicionales realizados en la base de datos.
También puede ejecutar pruebas unitarias como parte del proceso de implementación manual. En este caso, se crea un script de generación a partir de un conjunto de orígenes con etiquetas y se modifica el script si es necesario. Implemente la base de datos en un servidor de ensayo y, a continuación, ejecute las pruebas unitarias de software y de base de datos para comprobar la base de datos y el estado global de la aplicación. Si se superan todas las pruebas, puede implementar la base de datos en el entorno de producción. Para obtener más información, vea Administrar los cambios de la base de datos.
Crear pruebas unitarias de base de datos
Puede crear pruebas unitarias de base de datos que evalúen cambios realizados en cualquier objeto de base de datos. Sin embargo, Database Edition incluye compatibilidad adicional para funciones, desencadenadores y procedimientos almacenados de base de datos. Al crear una prueba para estos objetos, se crea automáticamente código T-SQL auxiliar (que puede personalizar) para probar el objeto de base de datos. Para obtener más información, vea Cómo: Crear pruebas unitarias de base de datos para funciones, desencadenadores y procedimientos almacenados y Cómo: Crear una prueba unitaria de base de datos vacía.
Nota: |
|---|
Puede crear y ejecutar pruebas unitarias de base de datos sin tener abierto un proyecto de base de datos. Sin embargo, debe tener abierto el proyecto de base de datos que contiene los objetos que desear probar para generar los scripts T-SQL a partir de estos objetos. |
Diseñar pruebas unitarias
Al igual que otros tipos de prueba generados en Visual Studio Team System Test, las pruebas unitarias de base de datos también se integran en Visual Studio. Con el Diseñador de pruebas unitarias de base de datos puede definir scripts de prueba Transact-SQL (T-SQL) que ejecuten scripts de base de datos y evalúen los resultados teniendo en cuenta condiciones de prueba que indiquen si la prueba se ha realizado correctamente o no.
El Diseñador de pruebas unitarias de base de datos tiene las siguientes características:
Característica |
Finalidad |
Cuadro de lista Nombre de la prueba de la barra de navegación |
Permite seleccionar por nombre pruebas unitarias individuales del proyecto de prueba o seleccionar Scripts comunes para desarrollar scripts que se ejecuten antes o después de cada prueba unitaria en la misma clase de prueba. |
Cuadro de lista Prueba de la barra de navegación |
Seleccione las opciones Anterior a la prueba, Prueba o Posterior a la prueba para escribir scripts T-SQL y condiciones de prueba que se evalúan en distintos momentos durante la prueba unitaria. Puede usar el script de prueba anterior para establecer un estado determinado en la base de datos de desarrollo. Puede usar el script de prueba posterior para restablecer el estado inicial de la base de datos tras ejecutar la prueba o, en función de los permisos necesarios, para evaluar el resultado de la prueba. |
Editor de T-SQL |
Use este editor para escribir los scripts T-SQL de prueba y de ejecución anterior y posterior a la prueba que se utilizarán en la prueba unitaria. Con el comando RAISERROR de T-SQL también puede escribir instrucciones ASSERT de T-SQL en el script de prueba en lugar de usar condiciones de prueba. Al igual que las condiciones de prueba, este comando también se puede usar para indicar si se supera la prueba o no en función del valor de gravedad. Para obtener más información, vea Utilizar aserciones T-SQL en pruebas unitarias de base de datos. |
Panel Condiciones de prueba |
Use las condiciones de prueba de esta ventana para evaluar los resultados de la ejecución del script T-SQL. |
Usar condiciones de prueba
El panel Condiciones de prueba proporciona un conjunto de condiciones de prueba predefinidas para probar cosas como el número de filas devueltas en un conjunto de resultados, el tiempo requerido para ejecutar el script T-SQL o si un conjunto de resultados está vacío. Cada condición de prueba predefinida tiene un método Assert (definido en la clase base TestCondition) al que se llama al evaluar una condición de prueba. Si no se supera una condición de prueba al comparar los resultados de la ejecución con los resultados deseados, la condición produce una excepción y aparece un resultado de error en la ventana Resultados de pruebas. Si las condiciones de prueba no producen una excepción, significa que se superó la prueba.
Al ejecutar la prueba, se ejecuta primero el script T-SQL, que devuelve un resultado (normalmente es un conjunto de resultados). La implementación de la condición de prueba determina qué parte de la información devuelta se evaluará. Por ejemplo, la condición de prueba Tiempo de ejecución evalúa el tiempo que debe durar la ejecución del script T-SQL y la condición de prueba Valor escalar evalúa un valor de una fila determinada. En función del resultado de esta evaluación, se muestra un indicador de prueba superada o no superada en la ventana Resultados de pruebas. El indicador de prueba superada o no superada depende de que se evalúen correctamente todas las condiciones del script de prueba. Si una condición produce una excepción, fracasará toda la prueba.
Hay seis condiciones de prueba predefinidas, pero como las condiciones de prueba son extensibles, puede agregar otras pruebas a la lista de condiciones de prueba si es necesario. También puede usar la función RAISERROR de T-SQL en el script T-SQL para generar un resultado de prueba superada o no superada, y mostrarlo en la ventana Resultados de pruebas. Para obtener más información, vea Utilizar aserciones T-SQL en pruebas unitarias de base de datos.
Nota: |
|---|
Se agrega automáticamente una condición de prueba no concluyente a las pruebas unitarias generadas en Test Edition y a las pruebas unitarias de base de datos generadas en Database Edition. Las pruebas se marcan como "no concluyentes" si se satisface esta condición de prueba. La condición de prueba no concluyente produce una excepción InconclusiveException. De forma predeterminada, esta condición de prueba se incluye en todas las pruebas para recordarle que debe agregar otras aserciones o condiciones de prueba. Puede quitar fácilmente esta condición de prueba. Para ello, selecciónela en la ventana Condiciones de prueba y haga clic en el icono Eliminar condición de prueba. |
Encontrará una lista completa de condiciones de prueba predefinidas en Utilizar condiciones de prueba en las pruebas unitarias de base de datos.
Otras razones para que no se supere una prueba es que sea anulada o se agote el tiempo de espera. Para obtener más información sobre los resultados que pueden aparecer en la ventana Resultados de pruebas, vea Resultados de prueba básicos.
Pruebas unitarias y datos de pruebas
Puede usar la característica de generación de datos de Team Edition for Database Professionals para agregar datos de prueba al entorno de base de datos. Esta característica incluye un grupo de generadores de datos que producirán los mismos datos para un valor de inicialización específico. Esto permite generar los datos, inspeccionar la base de datos generada para determinar los resultados que deben producir diversas pruebas y, a continuación, escribir las pruebas. Para obtener más información sobre cómo utilizar la generación de datos con pruebas unitarias, vea Tutorial: Crear y ejecutar una prueba unitaria de base de datos. Para obtener más información sobre los distintos generadores de datos, vea Descripción general de la generación de datos.
Ejecutar pruebas desde la línea de comandos
Puede ejecutar pruebas unitarias de base de datos desde el IDE o desde el símbolo del sistema si desea automatizar las ejecuciones de pruebas. Para obtener más información, vea Ejecución de pruebas desde la línea de comandos.
Vea también
Tareas
Cómo: Agregar condiciones de prueba a pruebas unitarias de base de datos
Nota: