Heim >Backend-Entwicklung >Golang >Wie kann man Datenspeicherentitäten in Google App Engine-Tests zuverlässig abfragen?
Abfragen von Datenspeicherentitäten in Google App Engine-Tests
Beim Testen von Code, der die Abfragefunktionen des Datenspeichers nutzt, können Entwickler trotz funktionaler Implementierungen darin auf Fehler stoßen die Anwendung. Diese Diskrepanz ergibt sich aus der schließlich konsistenten Natur der meisten Datenspeicherabfragen.
Im bereitgestellten Code wird eine Entität mithilfe der Put()-Methode in den Datenspeicher eingefügt, gefolgt von einer Abfrage, um sie mithilfe von GetAll() abzurufen. Allerdings gibt die Abfrage aufgrund der vom Datenspeicher auferlegten Latenzsimulation keine Ergebnisse zurück. Um dieses Problem zu lösen, können zwei Ansätze gewählt werden:
Beispiel (stark konsistenter Datenspeicher):
import ( "context" "cloud.google.com/go/datastore" "github.com/GoogleCloudPlatform/go-cloud-testing-gce" ) func TestEntityQueryStronglyConsistent(t *testing.T) { ctx := context.Background() c, err := aetest.NewContext(ctx, aetest.Options{ StronglyConsistentDatastore: true, }) if err != nil { t.Fatal(err) } defer c.Close() key := datastore.NewIncompleteKey(c, "Entity", nil) key, err = datastore.Put(c, key, &Entity{Value: "test"}) if err != nil { t.Fatal(err) } q := datastore.NewQuery("Entity").Filter("Value =", "test") var entities []Entity keys, err := q.GetAll(c, &entities) if err != nil { t.Fatal(err) } if len(keys) == 0 { t.Error("No keys found in query") } if len(entities) == 0 { t.Error("No entities found in query") } }
Durch die Verwendung beider Ansätze können Tests genau widerspiegeln das Verhalten von Abfragen in der Produktionsumgebung.
Das obige ist der detaillierte Inhalt vonWie kann man Datenspeicherentitäten in Google App Engine-Tests zuverlässig abfragen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!