为了账号安全,请及时绑定邮箱和手机立即绑定

如何验证是否调用了特定函数

如何验证是否调用了特定函数

Go
绝地无双 2021-11-08 10:17:28
我正在尝试用 Go 编写 TDD。然而,我坚持以下。编写测试:func TestFeatureStart(t *testing.T) {}实现测试:func (f *Feature) Start() error {  cmd := exec.Command(f.Cmd)  cmd.Start()}如何测试这个简单的位?我想我只想验证 exec 库是否正确。这就是我在 Java 中使用 Mockito 的方式。谁能帮我写这个测试?从我读过的内容来看,建议使用接口。Feature-struct 只包含一个字符串 Cmd。
查看完整描述

1 回答

?
长风秋雁

TA贡献1757条经验 获得超7个赞

您可以使用接口伪造整个交易,但您也可以使用可伪造的函数。在代码中:


var cmdStart = (*exec.Cmd).Start

func (f *Feature) Start() error {

    cmd := exec.Command(f.Cmd)

    return cmdStart(cmd)

}

在测试中:


called := false

cmdStart = func(*exec.Cmd) error { called = true; return nil }

f.Start()

if !called {

    t.Errorf("command didn't start")

}

另请参阅:Andrew Gerrand 的测试技术演讲。


查看完整回答
反对 回复 2021-11-08
  • 1 回答
  • 0 关注
  • 223 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信