测试一个导出的func
是否会调用另一个?的最佳方法是什么?例如。 (一个人为的例子):
type Foo struct{}
func (f *Foo) DoSomethingA(param string) bool {
return f.doSomethingParams(param, false, true)
}
func (f *Foo) DoSomethingB(param string) bool {
return f.doSomethingParams(param, true, true)
}
func (f *Foo) DoSomethingC(param string) bool {
return f.doSomethingParams(param, false, false)
}
func (f *Foo) doSomethingParams(param string, optA, optB bool) bool {
// do stuff here
}
我可以在所有变体中独立测试doSomethingParams()
。我想要一个简单的测试,当我致电DoSomethingA()
时,它会调用doSomethingParams(param, false, false)
等等。
最简单的方法是什么?显然用接口替换Foo
不会起作用,因为这是我正在测试的一个特定实现,反过来,它正在调用它自己的doSomethingParams()
实现。