Ini adalah struktur folder saya:
demo/ |-- go.mod |-- main.go |-- interfaces/ | |-- interfaces.go |-- mocks/
Ini ialah fail go.mod saya
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 )
Ini antara muka saya.go
package interfaces type MyInterface interface { DoSomething() error GetValue() int }
Apabila saya cuba menjalankan perintah mockgen, bukannya mencipta olok-olok, ia memberi saya penerangan bantuan ini: mockgen mempunyai dua mod operasi: sumber dan refleksi. Mod sumber menjana antara muka olok-olok daripada fail sumber. Ia didayakan dengan menggunakan bendera -source. Bendera lain yang mungkin berguna dalam mod ini ialah -imports dan -aux_files.
https://manpages.org/mockgen
Saya menjalankan arahan berikut: mockgen -destination=mocks/mock_myinterface.go -package=mocks demo/interfaces MyInterface
Bagaimana untuk menggunakan arahan mockgen dengan betul?
Anda mungkin perlu menggunakan garpu yang diselenggara oleh Uber (sejak Google meninggalkan golang/mock): https://github.com/uber-go/mock
Jika anda hanya menjalankan arahan mockgen
anda akan mendapat pilihan arahan. Sesuatu yang sepatutnya berkesan untuk anda ialah:
mockgen -source interfaces/interfaces.go -destination mocks/mocks.go
Atas ialah kandungan terperinci mockgen tidak mencipta olok-olok. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!