【发布时间】:2017-03-02 01:00:43
【问题描述】:
我在 go 函数中有简单的工作流程,但是在进行单元测试时,我卡在将参数传递给内部函数,或者模拟内部函数返回结果。
代码:
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 ...
这种情况的一般解决方案是什么?例如,如果 getResource() 调用 getBooks() 并且它的参数来自另一个来源?
如何在不实际运行的情况下模拟 getBooks() 返回结果?
谢谢,
【问题讨论】: