【发布时间】:2021-09-01 22:46:34
【问题描述】:
我在 Vapor 中对 http/html(不是 JSON)服务器进行了一系列测试。在用户数据库中创建一个用户,然后使用 POST 请求登录,以确认该用户存在,并得到肯定的响应:
2021-06-17T13:17:43+0700 info codes.vapor.request : request-id=97BBFF64-52B8-4988-BA79-236A43C0212F POST /test/login/
logged in stressed_tangerine_hedgehog@sillyname.org
如果我使用正在运行的服务器手动执行相同的操作,在开发数据库上,我会得到相同的肯定结果,并且 cookie 在那里:(使用迅雷客户端):
如果我然后点击一个测试端点,一个简单的 get 指示是否存在会话用户,也使用 ThunderClient,用户存在。
但是,在测试环境中,当我跟随登录请求到同一个端点时,我没有得到任何用户:
2021-06-17T13:17:43+0700 info codes.vapor.request : request-id=5D8FA5FC-B176-4355-9A37-FAE01772A1C6 GET /test/
not logged in
测试端点如下所示:
func getTestHandler(req: Request) -> String {
guard let user = req.auth.get(User.self) else {
print("not logged in")
return "not logged in"
}
print(user.username)
return "got the handler"
}
…在迅雷客户端中返回的消息是正确的。
Vapor 测试环境中的 XCTAssert 测试是否没有实现任何形式的会话 cookie,如果没有,是否有解决方法?如果是这样,我该怎么做才能让它们工作?
【问题讨论】:
-
参见stackoverflow.com/questions/62084102/… 我跟进了与 0xTim 的不和谐,似乎当时它们还没有实现。我最近没有检查。 HTH