Maison > développement back-end > Golang > Pourquoi mes tests de requête de banque de données Google App Engine échouent-ils malgré le travail en production ?

Pourquoi mes tests de requête de banque de données Google App Engine échouent-ils malgré le travail en production ?

Mary-Kate Olsen
Libérer: 2024-12-04 17:34:14
original
224 Les gens l'ont consulté

Why Do My Google App Engine Datastore Query Tests Fail Despite Working in Production?

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal