Я хочу протестировать несколько функций, которые включены в мой основной пакет, но мои тесты, похоже, не могут получить доступ к этим функциям.
Мой образец файла main.go выглядит так:
package main
import (
"log"
)
func main() {
log.Printf(foo())
}
func foo() string {
return "Foo"
}
и мой файл main_test.go выглядит так:
package main
import (
"testing"
)
func Foo(t testing.T) {
t.Error(foo())
}
когда я запускаю go test main_test.go
, я получаю
# command-line-arguments
.\main_test.go:8: undefined: foo
FAIL command-line-arguments [build failed]
Как я понимаю, даже если я переместил тестовый файл в другое место и попытался импортировать его из файла main.go, я не смог его импортировать, так как он package main
.
Каков правильный способ структурирования таких тестов? Должен ли я просто удалить все из пакета main
asides простой основной функции для запуска всего, а затем проверить функции в своем собственном пакете или есть ли способ для вызова этих функций из основного файла во время тестирования?