我在 Go 中看到了几种不同的测试包命名策略,想知道每种策略的优缺点,以及我应该使用哪种策略。
策略1:
文件名: github.com/user/myfunc.go
package myfunc
测试文件名: github.com/user/myfunc_test.go
package myfunc
有关示例,请参见 Bzip2。
策略二:
文件名: github.com/user/myfunc.go
package myfunc
测试文件名: github.com/user/myfunc_test.go
package myfunc_test
import (
"github.com/user/myfunc"
)
有关示例,请参见 电线。
策略3:
文件名: github.com/user/myfunc.go
package myfunc
测试文件名: github.com/user/myfunc_test.go
package myfunc_test
import (
. "myfunc"
)
有关示例,请参见 绳子。
Go 标准库似乎混合使用了策略1和策略2。我应该使用这三者中的哪一个?将 package *_test
附加到我的测试包中是一件痛苦的事情,因为这意味着我不能测试我的包私有方法,但是也许有一个我没有意识到的隐藏优势?