I prefer the testing libraries that do monkey-patching and consider mock implementations of interfaces to be an antipattern in Go, especially if it's the only reason for putting an interface between the calling code and a type.
Interfaces are one way to inject stubs, and a good way, but not the only way. You can also use function values as callbacks.