我正在用 Go 构建一个需要身份验证的 web 应用程序。我想使用验证身份验证行为的 appengine/aetest 运行本地测试。但是,我看不到使用虚拟用户创建aetest.Context 的任何方法。我错过了什么吗?
2 回答
肥皂起泡泡
TA贡献1829条经验 获得超6个赞
我发现了一些似乎可以解决问题的标头值。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
如果我在进行进程内测试时在上下文的请求上设置这些标头,事情似乎按预期工作。如果我在单独创建的请求上设置标头,事情就不那么成功了,因为 'user.Current()' 调用会咨询上下文的请求。
这些头文件也可以在 Python 环境中使用。
拉风的咖菲猫
TA贡献1995条经验 获得超2个赞
我对 Python sdk 有类似的问题。解决方案的要点是在本地运行测试时绕过身份验证。
您应该可以在测试设置时访问 [web] 应用程序对象 - 创建一个用户对象并将其保存到应用程序中(或您的 get_current_user() 方法将检查的任何地方)。
这将使您对除身份验证本身之外的所有应用程序功能进行单元测试。对于后面的部分,您可以将最新更改部署为未发布的 google 应用程序版本,然后测试身份验证,如果一切正常 - 发布版本。
- 2 回答
- 0 关注
- 216 浏览
添加回答
举报
0/150
提交
取消