Я бачив кілька різних стратегій іменування тестових пакетів в 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. Яку з усіх трьох слід використовувати? Це біль, що додається package *_test
до моїх пакетів тестування, оскільки це означає, що я не можу протестувати свої приватні методи пакету, але, можливо, є прихована перевага, про яку я не знаю?