go - 是否可以更改 os.Args 的值,以便我可以将测试添加到我正在创建的 CLI 中?
问题描述
是否可以os.Args
在 Golang 程序中更改 global 的值?我编写一个像 Cobra 这样的库只是为了好玩,在内部我利用它os.Args
来解析命令行参数。我想这样做以正确测试解析器。
目前我正在做的是手动更改我的包的内部变量,但这是一个不好的做法。
谢谢你。
解决方案
我认为上一个问题的答案如何在 Golang 中测试参数的传递?描述了如何在测试期间修改 os.Args。
tomasz声明“ os.Args 中的第一个值是可执行文件本身的(路径),因此 os.Args = []string{"cmd", "-user=bla"} 应该可以解决您的问题。您可以看看在标准包的标志测试中,他们正在做类似的事情。”
推荐阅读
- python - 为基本的 Flask 应用程序添加背景图像?
- google-data-studio - 谷歌数据洞察过滤器控制大小写敏感
- python - 当我用 fig.canvas.draw 做 imshow 时,为什么边距这么大?
- monaco-editor - 摩纳哥编辑器:更改默认字形边距悬停工具提示样式
- php - php woocomerce 购物车除法和乘法
- arrays - 用两个条件计算 IFS
- servicestack - 如何测试具有重定向的端点?
- f# - F# 制作不必要的 DateTimeOffset 副本
- kubernetes - 使用 iptables 阻止来自集群外部的所有 Kubernetes 节点端口通信
- shared-libraries - 链接静态库 Vs。Linux 中的共享库