Les meilleures pratiques pour la base de données de tests avec PHPUnit

PHPUnit's propre manuel a certains comme-encore-non écrite sections intitulé "exploitation" et les "Tests de bases de données des Meilleures Pratiques."

Quelles sont les meilleures pratiques pour l'essai d'une base de données avec PHPUnit, en particulier dans MySQL?

  • double possible de Ce sont des standards et des meilleures pratiques pour la création de tests unitaires pour les fonctionnalités à l'aide des bases de données?
  • Gordon, j'ai vraiment écrit cette question spécifiquement parce que les réponses ne semblent pas aller dans beaucoup de profondeur, ni la PHPUnit chapitre sur les tests de bases de données référencé il. J'aimerais en voir plus sur cette.
  • Pour mettre les choses au clair : vous disposez d'une fonction de l'exécution de certaines requêtes (ou requêtes) sur une base de données basée sur une entrée. Cela renvoie un résultat, et maintenant vous voulez vérifier si ce résultat est ce que vous attendez? Si oui : puis, à partir d'un état connu (où vous savez aussi ce que le résultat devrait être le cas) serait un bon début (et c'est ce qu'ils font tous référence à la double question). Il suffit de restaurer cet état connu sur chaque série de tests.
  • Êtes-vous désireux de savoir comment faire des "tests fonctionnels" avec PHPUnit?
  • c'est essentiellement ce que j'ai fait, mais aucune idée si je suis en train de faire presque aussi bien que je devrais être. J'ai essentiellement exécuter mysqldump sur un testdb, puis exécutez mysql manuellement pour restaurer testdb dans le même état sur le serveur de build, ainsi. Est-il possible que je devrais être en indiquant dans mes tests, cependant, que l'état est censé être? Et est-il plus automatisé façon de le faire que de l'exécution manuelle mysqldump à chaque fois?
  • un peu, bien que la majeure partie de l'application est constitué d'interactions avec MySQL, ce qui signifie que je serais encore personnellement considérer ces tests unitaires.