【发布时间】:2020-01-02 15:49:56
【问题描述】:
我想通过模拟其他包(package2)中的 FetchAllData() 和 SaveData() 来为 CreateData() 函数编写单元测试用例,请帮助我用示例模拟该函数,
提前致谢
func CreateData(input package1.InputRequest) (output package1.OututResponse){
..some code
..some code
DBdata, err := package2.FetchAllData() //function to fetch data from database
..some code
..some code
id, insertErr := package2.SaveData(someData) //function to insert data
..some code
..some code
}
我只需要模拟上面的函数而不修改函数。我正在寻找那个
【问题讨论】:
-
如果您停止尝试模拟这些函数,但将它们(或适当的抽象,例如以接口的形式)提供给您的被测函数,它可能会更干净。然后你可以注入一个假的或存根。非常简单,非常干净,易于测试且没有嘲弄。
-
@Volker 感谢您的回答,我是 golang 新手,能否请您用一些代码模板详细说明答案,以便我理解。
标签: unit-testing go mocking testify