You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

测试本地Go Web服务添加用户失败:新用户未出现在userlist

问题原因排查

1. 进程内存隔离导致测试操作不生效

go run main.go启动的服务和go test运行的测试是两个完全独立的进程,二者内存空间完全隔离。如果你的测试代码是直接调用createUser函数而非通过HTTP请求访问主服务,那修改的只是测试进程内的userCache副本,根本不会影响主服务的缓存;就算测试是发HTTP请求,也要先确认请求真的到达了主服务。

2. 测试的HTTP请求存在错误

检查Test_PostUser的请求逻辑:

  • 确认请求URL与主服务的createUser路由匹配(比如主服务路由是/user,测试里就不能写成/users)
  • 检查请求方法是否为POST,Content-Type是否设置为application/json(如果接口要求JSON格式)
  • 在createUser handler中添加日志(比如fmt.Println("收到创建用户请求")),运行测试时观察主服务终端是否有输出,以此验证请求是否真的送达。

3. userCache作用域或修改逻辑错误

  • 如果userCache是main函数内的局部变量,createUser handler无法访问到这个变量,自然无法修改。需要将其定义为全局变量,或者通过依赖注入(比如将缓存作为参数传给handler)的方式让handler能访问到。
  • 检查createUser内的添加逻辑:是否真的把新用户写入了userCache?比如有没有写错缓存的键名,或者添加后没做任何确认操作?

内容的提问来源于stack exchange,提问作者surfmuggle

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 05:29:50