长话短说:在包中编写的测试最终会出现在最终导出的包中吗?他们是否向编译后的二进制文件添加任何垃圾或重量?更长的版本:假设我有一个fooGo 包:pkg/
foo/
bar.go
bar_test.go我知道go 中的黑盒与白盒测试方法。简短回顾一下,我可以:已经bar_test.go声明了一个foo_test包,或者将它作为主foo包的一部分。方法 1 提供了更好的隔离,因为它允许专注于包的公共 API,因为它只访问foo. 此外,当应用程序代码使用 导入foo包时,仅编译import "pkg/foo"包含主包的文件。foo那很好。[1]但是,在某些情况下,将测试放入foo是一种方便的折衷方案。我自己并不是特别喜欢它,但我可以在几个代码库中看到它,并且我理解为什么有时它是必要的。我的问题是这些测试会发生什么。由于它们是包的一部分foo,当foo在某处导入时,我希望测试会一起进行。或者编译器是否足够聪明以剥离它们?[1] 这不是什么方法“更好”的问题。这并不重要。请不要评论“那种方法不是更好”。
- 1 回答
- 0 关注
- 65 浏览
添加回答
举报
0/150
提交
取消