Test des requêtes de banque de données Google App Engine
En tentant de tester unitairement les requêtes de banque de données, les développeurs peuvent rencontrer des problèmes lorsqu'ils tentent de vérifier les résultats. Cet article se penche sur un problème courant rencontré par les testeurs.
Échecs des requêtes dans les tests
Lors du test des requêtes de banque de données, il n'est pas rare de rencontrer des échecs même si le code fonctionne correctement dans le environnement de production. Les requêtes au sein des tests ne parviennent souvent pas à récupérer les données qui ont été insérées avec succès.
Raison des échecs : cohérence éventuelle
Le nœud du problème réside dans l'utilisation par la banque de données de " cohérence à terme. » Cela signifie que les requêtes ne sont pas immédiatement cohérentes et peuvent prendre un certain temps pour afficher les effets des modifications récentes des données.
Problème du simulateur de données
Le simulateur de banque de données utilisé lors des tests imite la latence observée en production. Lors de l'insertion d'une nouvelle entité et de l'exécution immédiate d'une requête, la requête n'inclura pas la nouvelle entité car les données n'ont pas encore été entièrement propagées.
Résoudre avec un délai ou une banque de données fortement cohérente
Pour résoudre ce problème, introduisez un délai entre les appels datastore.Put() et q.GetAll() ou utilisez l'option StronglyConsistentDatastore. Les requêtes d'ancêtres, connues pour leur forte cohérence, résolvent également ce problème.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!