验证init()中的环境

时间:2012-12-11 02:07:15

标签: go

我有一个包验证过程是否在init()上设置了特定的环境变量,否则会引起恐慌。

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

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

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

1 个答案:

答案 0 :(得分:3)

您是否希望能够测试验证,或者只是在测试文件中完全跳过它?无论哪种方式都将使用相同的基本方法,即将验证代码分离到其自己的文件中,该文件不会在测试期间构建。如果您只想在测试期间完全跳过验证,请将整个init()函数放入该文件中。如果要测试验证,只需让验证代码调用自己的填充程序来获取环境值,并将填充程序放在非测试文件中,并将单独的填充程序放入仅在测试期间编译的文件中。

您可以使用文件头中的build constraint来控制在测试期间是否构建文件。 IIRC,运行测试会应用test约束,因此您可以检查它。