2011-08-16 16 views
8

Tenemos varios sistemas en los que la mayoría de nuestra lógica empresarial se encuentra dentro de los procedimientos almacenados. Necesitamos escribir algunas pruebas que básicamente verifiquen que los datos han cambiado de la manera esperada cuando se ha ejecutado un proceso almacenado. También me gustaría algunas pruebas de esquema básico, parámetros de entrada y salida, etc.Pruebas de esquema y procedimiento almacenado usando Nunit

He estado buscando en las pruebas de bases de datos DBfit y MSTest y actualmente, no me han vendido. He usado Nunit a probar el código C# y se preguntaba si se utiliza Nunit sería un buen enfoque alternativo para probar procedimientos almacenados dentro de .NET (tal vez usando EF4)

Algo así como

  • datos de configuración
  • Comprobar los datos
  • Ejecutar proc
  • Comprobar los datos ha cambiado

¿esto sería un método adecuado de prueba procs almacenados? ¿Hay otros métodos mejores?

opiniones y comentarios serán bienvenidos :-)

EDIT: También me gustaría integrar esta en nuestro proceso de CI usando TeamCity

Respuesta

0

Tal AnyDbTest podría ser algo para usted en relación con las pruebas unitarias.

Para verificar el esquema y el código DB (SP, etc.), utilice un DB diff tool de su agrado. O tal vez echar un vistazo a bsn ModuleStore, que trata de abordar el control de versiones, la actualización y la modularización de las bases de datos de SQL Server.

1

Sí, puede realizar las pruebas dentro de VS y en el entorno de prueba de la unidad. Sin embargo, es posible que también desee considerar en tSQLt una solución de prueba unitaria para SQL Server. http://tsqlt.org/user-guide/

Red-gate proporciona un complemento SSMS para ayudar a respaldar ese enfoque. http://www.red-gate.com/products/sql-development/sql-test/

Me parece que las pruebas unitarias y el rendimiento de ajuste de las partes de SQL se pueden hacer independientemente de las pruebas de unidades .NET. Estoy de acuerdo en que la integración con su servidor de CI y el éxito/falla de informes a través del mecanismo de informes del servidor de CI es un objetivo digno.

+1

tSQLt admite servidores de CI, como TeamCity. Dave Green explica esto en su artículo: https://www.simple-talk.com/sql/sql-tools/using-sql-test-database-unit-testing-with-teamcity-continuous-integration/ (desplácese hacia abajo para a mitad de camino a donde él habla sobre el formato JUnit XML) –

Cuestiones relacionadas