英文:
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)
...
}
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论