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