在init()中验证环境

我有一个软件包,可以验证过程中是否设置了特定的环境变量init(),否则会出现恐慌。

我这样做是为了确保在启动时正确配置了该过程。

问题在于这种方法实际上不是可测试的(使用_test.go文件),因为测试套件中不存在该环境。

解决此问题的最佳方法是什么?


繁华开满天机
浏览 213回答 1
1回答

哆啦的时光机

您是否希望能够测试验证,还是只在测试文件中完全跳过它?两种方法都将使用相同的基本方法,即将验证代码分离到自己的文件中,该文件在测试期间不会生成。如果您只想在测试过程中完全跳过验证,请将整个init()函数放入该文件中。如果要测试验证,只需使验证代码调用您自己的垫片即可获取环境值,然后将垫片放入该非测试文件中,然后将单独的垫片放入仅在测试过程中进行编译的文件中。您可以使用文件头中的构建约束来控制文件是否在测试期间构建。IIRC,运行测试会应用test约束,因此您可以进行检查。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go