我正在Go中构建一个需要身份验证的Web应用程序。我想使用appengine / aetest运行本地测试来验证身份验证行为。但是,我没有看到任何方法来创建一个虚拟用户aetest.Context。我错过了什么吗?
答案 0 :(得分:0)
我在Python sdk上遇到了类似的问题。解决方案的要点是在本地运行测试时绕过身份验证。
您应该在测试设置时访问[web] app对象 - 创建用户对象并将其保存到应用程序中(或者get_current_user()方法将检查的位置)。
这将让您对除身份验证本身以外的所有应用程序功能进行单元测试对于后面的部分,您可以将最新的更改部署为未发布的谷歌应用版本,然后测试身份验证,如果一切正常 - 发布版本。
答案 1 :(得分:0)
我发现了一些似乎可以解决问题的标题值。 appengine / user / user_dev.go具有以下内容:
X-AppEngine-Internal-User-Email
X-AppEngine-Internal-User-Federated-Identity
X-AppEngine-Internal-User-Federated-Provider
X-AppEngine-Internal-User-Id
X-AppEngine-Internal-User-Is-Admin
如果我在进行进程测试时在Context的Request上设置了这些标头,那么事情似乎按预期工作。如果我在我单独创建的请求上设置标题,那么事情就不太成功了,因为'user.Current()'调用会查询Context的请求。
这些标题也可以在Python环境中使用。