Pat*_*ick 8 mocking go stubbing
目前我正在尝试用Go编写TDD.然而,我坚持以下.
写的测试:
func TestFeatureStart(t *testing.T){
}
Run Code Online (Sandbox Code Playgroud)
实施测试:
func (f *Feature) Start() error {
cmd := exec.Command(f.Cmd)
cmd.Start()
}
Run Code Online (Sandbox Code Playgroud)
如何测试这个简单的位.我想我只想验证exec-library是否正确使用.(我在Java中使用Mockito的方式).任何人都可以帮我写这个测试我不太清楚互联网上目前可用的答案是什么意思.他们建议使用接口.
目前Feature-struct只包含一个字符串Cmd.
你可以用接口来伪造整个交易,但你也可以使用假的函数.在代码中:
var cmdStart = (*exec.Cmd).Start
func (f *Feature) Start() error {
cmd := exec.Command(f.Cmd)
return cmdStart(cmd)
}
Run Code Online (Sandbox Code Playgroud)
在测试中:
called := false
cmdStart = func(*exec.Cmd) error { called = true; return nil }
f.Start()
if !called {
t.Errorf("command didn't start")
}
Run Code Online (Sandbox Code Playgroud)
另请参阅:Andrew Gerrand的测试技术讲座.
| 归档时间: |
|
| 查看次数: |
8523 次 |
| 最近记录: |