但我稍微看了一下
都是在Mock interface
我遇到的問題是
我用到其他package的function
而那隻package沒有用interface
所以無法產生Mock object
Google上的解法
都偏向Dependency Injection
但Code已經寫好了
只想簡單的Mock別的package的function
怎麼這麼麻煩?
結果找到一篇
有個簡單解法
main.go
import "some/package"
var wantMockFunc = package.someFunc
function myFunc () {
wantMockFunc()
}
main_test.go
func TestMyFunc (t *Testing.T) {
oldFunc := wantMockFunc
defer func () {
wantMockFunc = oldFunc
}()
wantMockFunc = func () {
print("Mocked")
}
}
原來可以簡單地先在test裡面替換要mock的function
在測試完之後再換回來
這樣就可以非常簡單地達到Mock function了!!