私は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"
)
例については、ワイヤーを参照してください。
戦略3:
ファイル名:github.com/user/myfunc.go
package myfunc
テストファイル名:github.com/user/myfunc_test.go
package myfunc_test
import (
. "myfunc"
)
例については、文字列を参照してください。
Go標準ライブラリは、戦略1と2を組み合わせて使用しているようです。3つのうちどれを使用すればよいですか?これはpackage *_test
、パッケージのプライベートメソッドをテストできないことを意味するため、テストパッケージに追加するのは面倒ですが、気付かない隠れた利点があるのでしょうか。