4

Récemment, PHPUnit a été utilisé avec xDebug pour tester mes applications Zend Framework. Le fait que j'utilise ZF ne devrait faire aucune différence à cette question - je viens de le mentionner pour l'exhaustivité.Utilisation de Db Sqlite PDO en mémoire pour les tests PHPUnit

Quoi qu'il en soit, tout fonctionne bien, mais maintenant je veux mettre en place une base de données en mémoire en utilisant PDO SQLite. Je l'ai fait avec succès et ai créé des tables et des données insérées. Cependant cette tâche a semblé prendre beaucoup de temps, la syntaxe de mon Exporter ne correspondait pas aux besoins des SQLites donc j'ai dû jouer pendant un moment.

SQLite ne supporte pas non plus les contraintes (n'est-ce pas?) Que mon application utilise, donc tout le processus semble une perte de temps si je ne peux pas tester mes contraintes.

L'utilisation de SQLite est-elle la bonne solution à mon problème? Quelqu'un at-il de meilleures façons de l'utiliser ou toute autre solution de base de données pour les tests unitaires?

+0

Votre question est un peu trompeuse. On dirait que vous êtes confrontés au problème comment faire des tests unitaires pour les applications liées à la base de données? Bonne question, très bonne question :-) – Alex

Répondre

3

L'idée de tests unitaires est de tester les petites pièces, donc une façon pourrait être de travailler avec de petites quantités de données d'échantillon (statique), comme décrit par exemple dans http://www.phpunit.de/manual/3.4/en/database.html

Si vous avez vraiment besoin de tester contre une base de données complète avec toutes ses contraintes, je pense qu'il n'y a pas moyen de simplement utiliser la base de données spécifique de votre application, par exemple MySQL.

+0

Bon point. Je pense que je dois y réfléchir différemment. Arrêtez d'essayer de tester mon 'application' et commencez à essayer d'en tester certaines parties. Pour être honnête, l'utilisation de Zend a conduit à cela en raison de la façon dont vous pouvez tester la configuration de MVC avec PHPUnit. –