【发布时间】:2014-08-01 00:15:11
【问题描述】:
我是 Google App Engine 的新手,遇到了一些数据存储问题。
我写了一个测试 GaeDatastore_test.go 来测试 datastore.Query.GetAll 方法见下文
package persist
import (
"fmt"
"testing"
"appengine/aetest"
"appengine/datastore"
)
type Mock struct {
Name string
}
func TestAll(t *testing.T) {
ctx, _ := aetest.NewContext(nil)
defer ctx.Close()
d := &Mock{
"hello",
}
fmt.Println(datastore.Put(ctx, datastore.NewIncompleteKey(ctx, "test", nil), d))
fmt.Println(datastore.Put(ctx, datastore.NewIncompleteKey(ctx, "test", nil), d))
fmt.Println(datastore.Put(ctx, datastore.NewIncompleteKey(ctx, "test", nil), d))
q := datastore.NewQuery("test")
var ms []Mock
q.GetAll(ctx, &ms)
fmt.Printf("%#v", ms)
}
当我使用运行测试文件时
goapp 测试
它不会返回我存储的 3 个实体。 我可以看到调用 datastore.Put 后返回的密钥,我可以使用 datastore.Get 使用密钥检索它们。但“ms”始终为零。
然后我尝试使用
初始化 ms制作([]模拟,10)
但这并没有太大的区别,数据仍然没有通过。
我检查了query.go source file。在内部它使用 loadEntity ,这与 Get / GetMulti 使用的方法相同,并使用 append 将元素推送到切片。 ms 为 nil 很奇怪。
客户端正在连接到模拟 GAE 环境的 Python 服务器。有人可以帮忙吗?
【问题讨论】:
标签: google-app-engine go