我在 Go 中看到了几种不同的测试包命名策略,并想知道每种方法的优缺点以及我应该使用哪一种。
策略一:
文件名: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"
)
以电线为例。
策略三:
文件名:github.com/user/myfunc.go
package myfunc
测试文件名:github.com/user/myfunc_test.go
package myfunc_test
import (
. "myfunc"
)
有关示例,请参见字符串。
Go 标准库似乎混合使用了策略 1 和 2。我应该使用这三个中的哪一个?附加到我的测试包中很痛苦package *_test
,因为这意味着我无法测试我的包私有方法,但也许有一个我不知道的隐藏优势?