Я хочу проверить несколько функций, которые включены в мой основной пакет, но мои тесты, похоже, не могут получить доступ к этим функциям.Как проверить основные функции пакета в 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
, простую основную функцию для запуска всего, а затем проверить функции в своем собственном пакете или есть ли способ вызвать эти функции из основного файла во время тестирования?
Там хорошее введение видео в пакет тестирования в этом видео (начиная с 3m30s) [https://youtu.be/XCsL89YtqCs?t=3m30s] (https://youtu.be/XCsL89YtqCs?t=3m30s) – Aaron
Ваша основная функция() (и, в идеале, основная часть вашего пакета в целом) не нуждается в тестировании: она должна быть «тупой» конечной точкой для библиотеки или библиотек , Проверьте их. – elithrar