【发布时间】:2020-01-18 03:51:42
【问题描述】:
对于 Go 代码库的单元测试,foo.go 和 foo_test.go 模式是否有任何合理的替代方案?唯一的“担忧”是将所有这些额外的文件放在文件系统上的同一位置。将测试文件放在中心位置可能会很好,但由于 Go 包的工作方式,这可能不起作用。
【问题讨论】:
-
没有。这就是 Go 项目的结构。文件数有什么问题?
-
我的老板表示担心可能有更好的方法,所以这是我告诉老板没有 lulz 的方式:)
-
一个测试文件可以放在任何地方,但如果它不在同一个包中,那么你就只能进行黑盒测试。最佳做法通常是两者都做,具体取决于您要测试的内容。
-
但即使是黑盒测试文件也通常放在
foo_test包中的同一目录中,以支持黑盒测试同时保持测试有条理在被测代码旁边。