小编dou*_*k13的帖子

如何模拟 *exec.Cmd / exec.Command()?

我需要嘲笑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 …

mocking go

5
推荐指数
1
解决办法
4495
查看次数

标签 统计

go ×1

mocking ×1