gpt4 book ai didi

unit-testing - 来自 golang 包的模拟方法

转载 作者:IT王子 更新时间:2023-10-29 02:29:46 26 4
gpt4 key购买 nike

我一直无法找到从 golang 包中模拟方法的解决方案。

例如,我的项目有代码在 Os.Getwd() 返回错误时尝试恢复。我能想到的对此进行单元测试的最简单方法是模拟 Os.Getwd() 方法以返回错误,并验证代码是否相应地工作。

我尝试使用 testify,但它似乎不可行。

谁有这方面的经验?

最佳答案

我自己的解决方案是将方法作为参数,这允许在测试时注入(inject)“模拟”。此外,创建一个导出方法作为公共(public)外观和一个未导出的方法用于测试。

例子:

    func Foo() int {        
return foo(os.Getpid)
}

func foo(getpid func() int) int {
return getpid()
}

关于unit-testing - 来自 golang 包的模拟方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35849985/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com