Go 的测试为什么和代码放在一起:大型工程怎么组织测试
打开 Go 标准库的 net/http,77 个文件里一半是 _test.go,和代码交错排着。这样不乱吗?顺着问题往下追:测试文件在构建里到底在哪;为什么不能像 Java 那样挪进单独的 tests 目录;同一个目录里的两种测试包;集成测试放哪、怎么不让它默认跑;测试依赖为什么要单独一个模块;e2e 测试离被测对象有多远;测试数据和依赖替身各自怎么放。统计了 Go、Kubernetes、etcd、Prometheus、CockroachDB 等 15 个仓库,并用 Go 1.27 逐个实验。