英文:
aetest and google.golang.org/appengine
问题
我将一个项目从捆绑的appengine/*导入迁移到了google.golang.org/appengine/*。我的测试用例仍然依赖于appengine/aetest。不幸的是,aetest包尚未迁移到google.golang.org/appengine/aetest,这就是为什么我会得到编译错误,因为它返回了一个不同的上下文类型(appengine.Context而不是x/net/context.Context)作为捆绑包。
我也无法创建一个新的上下文,因为我需要一个http.Request对象。
有没有办法解决这个问题?
英文:
I moved a project from the bundled appengine/* imports to google.golang.org/appengine/*. My test cases still rely on appengine/aetest. Unfortunately the aetest package hasn't been ported yet to google.golang.org/appengine/aetest, which is why I get compile errors because it returns a different context type (appengine.Context instead of x/net/context.Context) as the bundled packages.
I also can't create a new context, because I'd need a http.Request object for that.
Is there a way to work around this?
答案1
得分: 2
以下是翻译好的内容:
现在应该可以这样使用:
import (
"google.golang.org/appengine"
"google.golang.org/appengine/aetest"
)
func MyTest(t *testing.T) {
inst, err := aetest.NewInstance(nil)
if err != nil {
tb.Fatal(err)
}
req, err := inst.NewRequest("GET", "http://www.whatever.com/", nil)
if err != nil {
tb.Fatal(err)
}
ctx := appengine.NewContext(req)
...
}
英文:
Something like this should work now:
import (
"google.golang.org/appengine"
"google.golang.org/appengine/aetest"
)
func MyTest(t *testing.T) {
inst, err := aetest.NewInstance(nil)
if err != nil {
tb.Fatal(err)
}
req, err := inst.NewRequest("GET", "http://www.whatever.com/", nil)
if err != nil {
tb.Fatal(err)
}
ctx := appengine.NewContext(req)
...
}
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。


评论