登录
首页 >  Golang >  Go问答

如何使用定义为常量的文件路径来测试 Go 代码

来源:stackoverflow

时间:2024-04-11 17:12:31 288浏览 收藏

小伙伴们有没有觉得学习Golang很有意思?有意思就对了!今天就给大家带来《如何使用定义为常量的文件路径来测试 Go 代码》,以下内容将会涉及到,若是在学习中对其中部分知识点有疑问,或许看了本文就能帮到你!

问题内容

我正在为我的一个项目编写测试,其中涉及固定文件路径和基本 url。对我来说,定义它们的最合乎逻辑的方法是通过相关模块中的公共/私有常量,但这会妨碍良好的测试实践。我该如何解决这个问题?

我搜索了一种可能的解决方案,发现我可以为需要路径的结构定义两个构造函数:一个定义默认路径,另一个接受自定义路径

func Construct(param string) MyStruct {
    return MyStruct {Param: param, Path: "/default/path"}
}

func ConstructWithPath(param, path string) MyStruct {
    return MyStruct {Param: param, Path: path}
}

这对我来说非常难看,它是专门为测试量身定制的解决方案,因为我正在考虑的路径是固定且已知的。


解决方案


这称为 dependency injection,通常用于测试。让代码更易于测试并没有什么特别难看的地方。

另一种方法是将路径定义为包中的 vars (使它们私有 - 测试位于同一包中),并且测试可以在进行测试之前将这些变量设置为某些值。

您的解决方案很好。将代码和接口设计为可测试是一种常见且推荐的做法。 我会稍微修改您的解决方案以防止重复-

func Construct(param string) MyStruct {
    return ConstructWithPath(param, "/default/path")
}

func ConstructWithPath(param, path string) MyStruct {
    return MyStruct {Param: param, Path: path}
}

如果您不希望此包之外的任何人使用它,则无需导出 constructwithpath。

理论要掌握,实操不能落!以上关于《如何使用定义为常量的文件路径来测试 Go 代码》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注golang学习网公众号吧!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>