Edited at

Cloud DatastoreのテストでPut後データが取得できない

More than 1 year has passed since last update.

ctx, done, err := aetest.NewContext()

if err != nil {
t.Fatal(err)
}
defer done()
g := goon.FromContext(ctx)
newUser := model.User{}
_, err = g.Put(newUser)
if err != nil {
t.Fatal(err)
}

みたいなコードを実行した後、テスト対象のコードでnewUserを参照しようとすると、データが登録されておらず半日ハマった。

Google App Engine Datastore - Testing Queries fails

ここに書いてあるとおり100msまたせたらちゃんとデータが登録できてテストも通った。要は、

ctx, done, err := aetest.NewContext()

if err != nil {
t.Fatal(err)
}
defer done()
g := goon.FromContext(ctx)
newUser := model.User{}
_, err = g.Put(newUser)
if err != nil {
t.Fatal(err)
}
time.Sleep(100 * time.Millisecond)

なんて原始的な・・・・(英語読めないので流し読み)