Ich habe in Go verschiedene Benennungsstrategien für Testpakete gesehen und wollte wissen, welche Vor- und Nachteile die einzelnen sind und welche ich verwenden sollte.
Strategie 1:
Dateiname: github.com/user/myfunc.go
package myfunc
Name der Testdatei: github.com/user/myfunc_test.go
package myfunc
Ein Beispiel finden Sie in bzip2 .
Strategie 2:
Dateiname: github.com/user/myfunc.go
package myfunc
Name der Testdatei: github.com/user/myfunc_test.go
package myfunc_test
import (
"github.com/user/myfunc"
)
Ein Beispiel finden Sie unter Draht .
Strategie 3:
Dateiname: github.com/user/myfunc.go
package myfunc
Name der Testdatei: github.com/user/myfunc_test.go
package myfunc_test
import (
. "myfunc"
)
Ein Beispiel finden Sie unter Zeichenfolgen .
Die Go-Standardbibliothek scheint eine Mischung aus Strategie 1 und 2 zu verwenden. Welche der drei sollte ich verwenden? Es ist ein Schmerz, der package *_test
an meine Testpakete angehängt wird, da dies bedeutet, dass ich meine privaten Paketmethoden nicht testen kann, aber vielleicht gibt es einen versteckten Vorteil, den ich nicht kenne?