J'ai vu plusieurs stratégies de nommage de packages de test différentes dans Go et je voulais savoir quels sont les avantages et les inconvénients de chacune et laquelle je devrais utiliser.
Stratégie 1:
Nom de fichier: github.com/user/myfunc.go
package myfunc
Nom du fichier de test: github.com/user/myfunc_test.go
package myfunc
Voir bzip2 pour un exemple.
Stratégie 2:
Nom de fichier: github.com/user/myfunc.go
package myfunc
Nom du fichier de test: github.com/user/myfunc_test.go
package myfunc_test
import (
"github.com/user/myfunc"
)
Voir fil pour un exemple.
Stratégie 3:
Nom de fichier: github.com/user/myfunc.go
package myfunc
Nom du fichier de test: github.com/user/myfunc_test.go
package myfunc_test
import (
. "myfunc"
)
Voir les chaînes pour un exemple.
La bibliothèque standard Go semble utiliser un mélange de stratégies 1 et 2. Laquelle des trois devrais-je utiliser? C'est une douleur d'ajouter package *_test
à mes packages de test car cela signifie que je ne peux pas tester les méthodes privées de mon package, mais peut-être qu'il y a un avantage caché dont je ne suis pas conscient?