Go语言技术文章
-
用 Go testing/fstest.MapFS 在内存中构造文件树,让依赖 fs.FS 的读取逻辑脱离临时目录,并覆盖内容、目录和缺失文件测试。116 收藏 -
围绕 go generate 的指令、工作目录、环境变量和输出边界,整理一套可重复执行的 Go 代码生成方案,并给出 CI 差异检查清单。188 收藏 -
用 Go testing/fstest.TestFS 检查自定义 fs.FS 的路径、目录枚举和期望文件,按错误信号定位实现边界并补上回归测试。486 收藏 -
Go go generate 的参数直接跟在生成命令后面,双引号可以保留带空格的单个参数,GOFILE 等自动变量适合减少硬编码。本文用 flag 和 -command 给出可维护的配置方法。414 收藏 -
从临时根路径、目录读写和资源清理三层排查 Go testing.T TempDir 的权限差异,覆盖 GOTMPDIR、Windows 文件占用、子进程等待与并行测试的兼容处理。203 收藏 -
Go unsafe 指针转换的关键不只是地址能否转,而是对象在底层调用结束前是否仍然可达。本文用直接传参、runtime.KeepAlive 和 unsafe.Add 说明安全边界。123 收藏 -
用 Go testing.T TempDir 创建独立目录,说明 Setenv 与并行子测试的边界,并给出串行环境注入和并行显式传参两种测试方案。480 收藏 -
用 Go unsafe.Slice 把数组建立为共享存储的切片视图,说明空数组、长度边界、对象存活和 uintptr 暂存的风险,以及生产发布前的检查清单。358 收藏 -
Go测试需要临时文件时,直接使用testing.T.TempDir创建测试专属目录,测试及子测试结束后自动清理。本文给出文件读写、子测试隔离、GOTMPDIR与资源关闭的实用边界。367 收藏 -
用 Go unsafe.Sizeof、Alignof、Offsetof 拆解结构体字段偏移、内部 padding 与尾部对齐,给出字段顺序优化方法和跨架构使用边界。429 收藏 -
用 Go testing.T.Cleanup 管理测试资源时,结合 t.Helper 隐藏辅助函数栈帧,让清理失败更接近真实测试调用方;本文说明生命周期、逆序执行、子测试边界和排查清单。356 收藏 -
Go reflect 中 ConvertibleTo、AssignableTo、CanConvert、CanSet 与接口断言职责不同。本文用命名类型、接口字段和动态值示例说明转换、赋值与断言的边界,帮助反射代码减少 panic。206 收藏 -
用 Go testing.T Cleanup 分层管理共享 fixture 与子测试资源,配合 T.Run 的等待边界协调 Parallel 测试,避免清理过早和闭包串数据。444 收藏 -
Go reflect 中 CanAddr 与 CanSet 不是一回事。本文用 ValueOf、Elem、结构体字段、切片元素和 map 索引拆解 Set panic,并给出可复查的安全写入方法。136 收藏 -
围绕 Go testing.T Cleanup 讲清后注册先执行的规则,示范如何按资源依赖登记清理函数、隔离子测试资源并处理清理错误。343 收藏