這是我的資料夾結構:
demo/ |-- go.mod |-- main.go |-- interfaces/ | |-- interfaces.go |-- mocks/
這是我的 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 )
這是我的interfaces.go
package interfaces type MyInterface interface { DoSomething() error GetValue() int }
當我嘗試執行mockgen指令時,它並沒有創建模擬,而是給了我這個幫助描述: mockgen 有兩種操作模式:source 和reflect。 Source 模式從來源檔案產生mock 介面。它是透過使用 -source 標誌啟用的。在此模式下可能有用的其他標誌是 -imports 和 -aux_files。
https://manpages.org/mockgen
#我執行了以下指令:mockgen -destination=mocks/mock_myinterface.go -package=mocks demo/interfaces MyInterface
如何正確使用mockgen指令?
您可能應該使用Uber 維護的分支(因為Google 放棄了golang/mock):https: //github.com/uber -go/mock
如果您只是執行
mockgen
mockgen -source interfaces/interfaces.go -destination mocks/mocks.go
以上是mockgen 不創建模擬的詳細內容。更多資訊請關注PHP中文網其他相關文章!