Maison >développement back-end >Golang >mockgen ne crée pas de simulations
Voici la structure de mes dossiers :
demo/ |-- go.mod |-- main.go |-- interfaces/ | |-- interfaces.go |-- mocks/
Voici mon fichier go.mod
go 1.20 require ( github.com/golang/mock v1.6.0 // indirect golang.org/x/mod v0.4.2 // indirect golang.org/x/sys v0.0.0-20210510120138-977fb7262007 // indirect golang.org/x/tools v0.1.1 // indirect golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 // indirect )
Voici mes interfaces.go
package interfaces type MyInterface interface { DoSomething() error GetValue() int }
Lorsque j'essaie d'exécuter la commande mockgen, au lieu de créer la simulation, cela me donne cette description d'aide : mockgen a deux modes de fonctionnement : source et réflexion. Le mode source génère des interfaces fictives à partir des fichiers sources. Il est activé en utilisant l'indicateur -source. D'autres indicateurs qui peuvent être utiles dans ce mode sont -imports et -aux_files.
https://manpages.org/mockgen
J'ai exécuté la commande suivante : mockgen -destination=mocks/mock_myinterface.go -package=mocks demo/interfaces MyInterface
Comment utiliser correctement la commande mockgen ?
Vous devriez probablement utiliser le fork maintenu par Uber (depuis que Google a abandonné golang/mock) : https://github.com/uber-go/mock
Si vous exécutez simplement la commande mockgen
, vous obtiendrez des options de commande. Voici quelque chose qui devrait fonctionner pour vous :
mockgen -source interfaces/interfaces.go -destination mocks/mocks.go
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!