Я видел несколько различных стратегий именования тестовых пакетов в 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"
)
См. strings для примера.
Стандартная библиотека Go Go, похоже, использует смесь стратегий 1 и 2. Какую из трех я должен использовать? Это боль, добавляющая package *_test
к моим тестовым пакетам, так как это означает, что я не могу проверить свои частные методы пакета, но, возможно, есть скрытое преимущество, о котором я не знаю?