0
我在go函數中有簡單的工作流程,但是在進行單元測試時,我被困在將參數傳遞給內部函數或模擬內部函數返回結果。golang單元測試:內部函數參數
代碼:
package myFunc
import (
myPackage
bookPackage
)
func Init() (err error) {
err = getResource(myPackage.GetPath())
...
}
func getResource(path string) (err error) {
// get resource from path ...
err := bookPackage.GetBook(path)
}
測試:
package myFunc
import "testing"
func TestInit(t *testing.T) {
if err := Init(); err != nil {
t.Fatal("test failed")
}
}
結果:
--- FAIL: TestInit (0.00s)
Failed to read path ...
會有什麼一般soluti在這種情況下?例如,如果getResource()調用getBooks()並且它的參數來自另一個源?
如何模擬getBooks()返回結果,而不實際運行它?
感謝,
嗨戴夫,謝謝你的快速反應。我根據您的反饋修改了問題。 – user3670618
內部函數getResource(myPackage.GetPath())通過調用另一個函數來獲取其參數,而不是從Init()傳入。我嘗試在測試中硬編碼路徑字符串,但它仍然無法得到它。 – user3670618