测试
已收录文章:27篇
-
Go 的 io/fs.ReadDir 会按文件名排序返回目录项,但底层 ReadDirFile、os.File.ReadDir 和错误场景的行为并不完全一样。本文从一次目录索引顺序错乱的排查开始,拆清排序、部分结果和测试边界。253 收藏
-
Go 的 map 不能用 == 比较内容,只有和 nil 比较才合法。本文从可比较类型规则出发,拆解 len、reflect.DeepEqual 与排序后序列化三种校验方式的边界,并给出测试和生产代码中的选择建议。369 收藏
-
Go 的 log/slog 可以把日志级别过滤交给 HandlerOptions,但固定 Level 与可动态调整的 LevelVar 适用场景不同。本文用 JSONHandler、测试缓冲区和最小示例说明过滤发生在哪里,以及如何验证 DEBUG 是否真的被挡住。228 收藏
-
Go 测试使用 t.TempDir 创建临时目录时,目录会在当前测试及其子测试全部结束后自动清理。本文拆解清理时机、并行子测试、路径拼接和失败复现边界,给出可直接回归的测试写法。145 收藏
-
用 Go 1.25+ testing/synctest 测试定时器、异步回调和取消路径,解释 Test、Wait、fake time 的最小用法,以及网络和外部 goroutine 为什么不能直接放进 bubble。238 收藏
-
Go 1.25 将 testing/synctest 正式带入标准库,测试超时、定时器和并发协作时不必再真实等待。本文用一个带 deadline 的通知流程说明 synctest.Test、synctest.Wait、时间推进和版本兼容边界。107 收藏
-
Go 1.24 为基准测试增加 testing.B.Loop,能替代手写 b.N 循环,让每次基准运行只做一次昂贵的准备和清理,也减少循环体被编译器过度优化的机会。本文对比旧写法,演示迁移步骤,并说明基准数据变化时该怎么判断。243 收藏
-
Golang · Go问答 | 2个月前 | interface · 测试 · 架构设计 · Go问答 · Go 接口设计 接口定义位置 Go mock accept interfaces return structs Go 架构Go 接口通常应放在使用方包里,而不是实现方为了 mock 提前导出一大组接口。本文通过调用方依赖、真实测试与多实现边界,说明什么时候该定义小接口,什么时候直接返回具体类型更清晰。300 收藏
-
围绕 Go 1.25 testing 新增的 Attr 和 Output 能力,讲清测试元数据、go test -json、CI 报告聚合、失败上下文和团队测试日志规范。478 收藏
-
从 Go 项目里常见的 time.Sleep 脆弱测试出发,讲 testing/synctest 的测试气泡、虚拟时间、synctest.Wait、缓存过期和后台 goroutine 测试落地。428 收藏
-
benchmark的使用 在开发中我们要想编写高性能的代码,或者优化代码的性能时,你首先得知道当前代码的性能,在go中可以使用testing包的benchmark来做基准测试 ,首先我们写一个简单的返回随机字385 收藏
-
背景 测试的出现是为了避免项目中出现重大事故 测试是避免事故的最后一道屏障 测试 单元测试的覆盖率在一定程度上而言,决定了代码的质量 单元测试 通过测试单元的输出与期望值进行校257 收藏