aetest和google.golang.org/appengine

huangapple go评论71阅读模式
英文:

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)
  ...
}

huangapple
  • 本文由 发表于 2015年8月9日 04:04:41
  • 转载请务必保留本文链接:https://go.coder-hub.com/31898044.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定