2010-12-15 94 views
7

Je ne suis pas un gars Db. Je suis simplement curieux de savoir s'il est possible d'écrire des assertions dans Sql afin de pouvoir écrire des tests unitaires pour vos scripts, pour vos sprocs, etc. et même implémenter une approche de développement piloté par les tests pour vos sessions?Est-il possible d'implémenter Test Driven Development en SQL?

merci!

+1

Il y a plus de 100 questions portant sur divers SO aspects de cette question: http://stackoverflow.com/search?q=unit+test+sql –

+2

@Ed - ces questions portent sur les tests unitaires en général, pas sur TDD. –

Répondre

1

Vous pouvez le faire en réalité, pas directement de throught SQL, mais la langue que vous faites votre demande. Par exemple, SQL doit être encapsulé dans DAL (Data Access Layer) et toutes les données doivent être récupérées par des référentiels (ou d'autres classes d'accès aux données). Vous pouvez effectuer des tests unitaires de ces classes, qui exécuteraient des scripts SQL à la fin. Donc, fondamentalement, vous allez tester votre code SQL.

Il est plus simple pour moi que d'essayer d'écrire de tels tests en SQL. :)

Il y a quelque temps je pensais sur ce point: http://www.beletsky.net/2010/11/testing-database-and-test-database.html

+1

Pramod Sadalage ("Refactoring Databases") a également recommandé cette technique et je l'ai vu faire en Java. Comme un point de vocabulaire, ce n'est pas un test unitaire à ce moment-là (même selon les normes de tests unitaires d'Agile) - je dirais plutôt un test de base de données ou un test d'intégration. – Lunivore