我需要嘲笑exec.Command()。
我可以使用以下方法来模拟它:
var rName string
var rArgs []string
mockExecCommand := func(name string, arg ...string) *exec.Cmd {
rName = name
rArgs = arg
return nil
}
Run Code Online (Sandbox Code Playgroud)
然而,这在实际代码中不起作用,因为它抱怨 nil 指针,因为返回exec.Cmd调用Run().
我试着像这样嘲笑它:
type mock exec.Cmd
func (m *mock) Run() error {
return nil
}
var rName string
var rArgs []string
mockExecCommand := func(name string, arg ...string) *exec.Cmd {
rName = name
rArgs = arg
m := mock{}
return &m
}
Run Code Online (Sandbox Code Playgroud)
但它抱怨:cannot use &m (value of type …