golang如何测试一个导出的函数是否调用另一个未导出的函数

时间:2017-12-03 15:04:15

标签: go

测试一个导出的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()实现。

0 个答案:

没有答案