Widziałem kilka różnych strategii nazewnictwa pakietów testowych w Go i chciałem wiedzieć, jakie są zalety i wady każdego z nich i którego powinienem użyć.
Strategia 1:
Nazwa pliku: github.com/user/myfunc.go
package myfunc
Nazwa pliku testowego: github.com/user/myfunc_test.go
package myfunc
Zobacz przykład bzip2 .
Strategia 2:
Nazwa pliku: github.com/user/myfunc.go
package myfunc
Nazwa pliku testowego: github.com/user/myfunc_test.go
package myfunc_test
import (
"github.com/user/myfunc"
)
Zobacz przykład drutu .
Strategia 3:
Nazwa pliku: github.com/user/myfunc.go
package myfunc
Nazwa pliku testowego: github.com/user/myfunc_test.go
package myfunc_test
import (
. "myfunc"
)
Zobacz ciągi dla przykładu.
Wydaje się, że biblioteka standardowa Go używa kombinacji strategii 1 i 2. Której z trzech opcji powinienem użyć? Jest to uciążliwe dołączanie package *_test
do moich pakietów testowych, ponieważ oznacza to, że nie mogę przetestować prywatnych metod mojego pakietu, ale może istnieje ukryta zaleta, której nie jestem świadomy?