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