是否有设置 golang 单元测试参数的最佳实践?

Posted

技术标签:

【中文标题】是否有设置 golang 单元测试参数的最佳实践?【英文标题】:Is there a best practice to setup golang unit test parameters? 【发布时间】:2022-01-12 04:13:27 【问题描述】:

我的单元测试需要一个远程服务器地址来启动。服务器地址不固定。

如果我将地址放在我的 .go 测试源中,我会在每次运行时更改它们。

如果我将它们放在系统环境变量中,在 VSCode GUI 中更改它非常不方便。 (我的意思是我将在 VSCode 菜单中开始测试。)

我知道我可以在运行或调试我的程序之前将环境变量放在 launch.json 中进行设置。但在这里我只想运行单元测试。

有没有不重启VSCode的情况下更改参数的好方法?

【问题讨论】:

【参考方案1】:

您可以将以下 sn-ps 添加到 VSCode settings.json 以指定仅用于 go test 运行的环境变量:

直接定义变量:

"go.testEnvVars": 
  "MY_VAR": "my value"
,

或者使用包含MY_VAR="my value"格式的环境变量的专用文件(在我的示例中称为test.env,在项目工作区的根目录中),每行一个变量:

"go.testEnvFile": "$workspaceFolder/test.env",

还要注意,单元测试(顾名思义,它们测试一个代码单元)通常不应依赖于任何外部服务或资源。除了被测逻辑之外的所有东西都应该以模拟的形式提供。

【讨论】:

非常感谢,它有效。

以上是关于是否有设置 golang 单元测试参数的最佳实践?的主要内容,如果未能解决你的问题,请参考以下文章

Sencha Touch 单元测试最佳实践?

在 Go 中分离单元测试和集成测试

单元测试最佳实践:如何最大程度地利用测试自动化

单元测试依赖于UserManager的控制器的最佳实践 ?

MongoDB / Mongoose 单元测试 - 最佳实践? [关闭]

使用 Paypal REST SDK 最佳实践进行单元/模拟测试