Das ist meine Ordnerstruktur:
demo/ |-- go.mod |-- main.go |-- interfaces/ | |-- interfaces.go |-- mocks/
Das ist meine go.mod-Datei
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 )
Das ist mein interfaces.go
package interfaces type MyInterface interface { DoSomething() error GetValue() int }
Wenn ich versuche, den Mockgen-Befehl auszuführen, anstatt den Mock zu erstellen, erhalte ich diese Hilfebeschreibung: Mockgen verfügt über zwei Betriebsmodi: Quelle und Reflexion. Der Quellmodus generiert Scheinschnittstellen aus Quelldateien. Die Aktivierung erfolgt über das Flag -source. Weitere Flags, die in diesem Modus nützlich sein können, sind -imports und -aux_files.
https://manpages.org/mockgen
Ich habe den folgenden Befehl ausgeführt: mockgen -destination=mocks/mock_myinterface.go -package=mocks demo/interfaces MyInterface
Wie verwende ich den Mockgen-Befehl richtig?
Sie sollten wahrscheinlich den von Uber gepflegten Fork verwenden (seit Google Golang/Mock aufgegeben hat): https://github.com/uber-go/mock
Wenn Sie einfach den Befehl mockgen
ausführen, erhalten Sie Befehlsoptionen. Etwas, das für Sie funktionieren sollte, ist Folgendes:
mockgen -source interfaces/interfaces.go -destination mocks/mocks.go
Das obige ist der detaillierte Inhalt vonMockgen erstellt keine Mocks. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!