Heim >Backend-Entwicklung >Golang >Mockgen erstellt keine Mocks

Mockgen erstellt keine Mocks

WBOY
WBOYnach vorne
2024-02-06 08:45:031018Durchsuche

mockgen 不创建模拟

Frageninhalt

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?


Richtige Antwort


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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:stackoverflow.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen