¿Cómo probar las funciones del paquete principal en golang?
Quiero probar algunas funciones que se incluyen en mi paquete principal, pero parece que mis pruebas no pueden acceder a esas funciones.
Mi archivo main.go de muestra se ve así:
package main
import (
"log"
)
func main() {
log.Printf(foo())
}
func foo() string {
return "Foo"
}
y mi archivo main_test.go se ve así:
package main
import (
"testing"
)
func Foo(t testing.T) {
t.Error(foo())
}
cuando corrogo test main_test.go
yo obtengo
# command-line-arguments
.\main_test.go:8: undefined: foo
FAIL command-line-arguments [build failed]
Según tengo entendido, incluso si moví el archivo de prueba a otro lugar e intenté importarlo desde el archivo main.go, no pude importarlo, ya que espackage main
.
¿Cuál es la forma correcta de estructurar tales pruebas? ¿Debo eliminar todo de lamain
paquete aparte de una función principal simple para ejecutar todo y luego probar las funciones en su propio paquete, o ¿hay alguna forma de llamar a esas funciones desde el archivo principal durante la prueba?