Как проверить основные функции пакета в golang?
Я хочу протестировать несколько функций, которые включены в мой основной пакет, но мои тесты не могут получить доступ к этим функциям.
Мой пример файла 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
Пакет, кроме простой основной функции, запускает все, а затем тестирует функции в их собственном пакете, или есть ли способ вызвать эти функции из основного файла во время тестирования?