Google App Engine テストでのデータストア エンティティのクエリ
データストアのクエリ機能を利用するコードをテストする場合、開発者はデータストア内の機能実装にもかかわらずエラーが発生する可能性があります。アプリケーション。この不一致は、ほとんどのデータストア クエリの結果整合性の性質から発生します。
提供されたコードでは、Put() メソッドを使用してエンティティがデータストアに挿入され、続いて GetAll() を使用してエンティティを取得するクエリが実行されます。ただし、データストアによって課される遅延シミュレーションのため、クエリは結果を返しません。これを解決するには、2 つのアプローチを取ることができます:
例 (強整合性データストア):
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") } }
どちらのアプローチを使用しても、テストは正確に反映できます。本番環境でのクエリの動作。
以上がGoogle App Engine テストでデータストア エンティティを確実にクエリする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。