【发布时间】:2018-08-10 15:05:31
【问题描述】:
在正在测试的Golang 项目中,有一种方法可以将 JSON 配置文件加载到变量中。它的代码是这样的:
// Load the JSON config file
func Load(configFile string, outputObj interface{}) *errors.ErrorSt {
var err error
// Read the config file
jsonBytes, err := ioutil.ReadFile(configFile)
if err != nil {
fmt.Println(err.Error())
return errors.File().AddDetails(err.Error())
}
// Parse the config
if err := json.Unmarshal(jsonBytes, outputObj); err != nil {
return errors.JSON().AddDetails("Could not parse" + configFile + ": " + err.Error())
}
return nil
}
我希望对其进行测试,但我不知道是否应该为测试用例创建假 JSON 文件,或者只是模拟整个函数。我的 Java 背景让我倾向于后者。
通过探索,我找到了我正在使用的testify 框架has a package for mocking methods,但我试图模拟的不属于接口(非 OOP 语言的陷阱!!)
【问题讨论】:
标签: unit-testing go testify