知识卡片

测试包命名决定黑盒白盒测试

专业/工作 · 486.b

内容

Go的测试文件是否和被测代码共享同一个包名,直接决定了测试能看到什么。测试文件如果声明成和被测代码相同的包名(如package omap),测试代码就在包内部,可以直接访问所有未导出的标识符,甚至可以为它们临时挂上只在测试里用的辅助方法——这是白盒测试。发散:选哪种不是随意的风格问题——黑盒测试更贴近”包的使用者视角”,能防止测试和实现细节绑得太死、实现一变测试就跟着崩;白盒测试则在需要验。

参考来源

- 位置:《Go语言程序设计》第9章《包》(源文件:_epub-src/OEBPS/text00014.html) - 结论依据:原文在该章节围绕“Go的测试文件是否和被测代码共享同一个包名,直接决定了测试能看到什么”给出定义、示例或限制条件;摘录中的术语、代码片段或对比关系直接支撑本卡片的结论。 - 原始内容:应用的主源码文件为 main.go ,代码清单2-1展示了它的一个简化版本。 代码清单2-1 main.go 文件中的 main 函数,函数中的代码经过了简化 package main import ( "net/http" ) func main() { mux := http.NewServeMux() files := http.F…