He visto varias estrategias de nomenclatura de paquetes de prueba diferentes dentro de Go y quería saber cuáles son las ventajas y desventajas de cada una y cuál debería usar.
Estrategia 1:
Nombre de archivo: github.com/user/myfunc.go
package myfunc
Nombre del archivo de prueba: github.com/user/myfunc_test.go
package myfunc
Consulte bzip2 para ver un ejemplo.
Estrategia 2:
Nombre de archivo: github.com/user/myfunc.go
package myfunc
Nombre del archivo de prueba: github.com/user/myfunc_test.go
package myfunc_test
import (
"github.com/user/myfunc"
)
Ver cable para un ejemplo.
Estrategia 3:
Nombre de archivo: github.com/user/myfunc.go
package myfunc
Nombre del archivo de prueba: github.com/user/myfunc_test.go
package myfunc_test
import (
. "myfunc"
)
Vea cadenas para un ejemplo.
La biblioteca estándar de Go parece utilizar una combinación de la estrategia 1 y 2. ¿Cuál de las tres debería utilizar? Es una molestia agregar package *_test
mis paquetes de prueba, ya que significa que no puedo probar los métodos privados de mi paquete, pero tal vez haya una ventaja oculta que no conozco.