我有一个包可以验证进程是否设置了特定的环境变量init()
,否则它会恐慌。
我这样做是为了确保在启动时正确配置该过程。
问题是这种方法不是真正可测试的(使用_test.go
文件),因为测试套件中不存在环境。
解决这个问题的最佳方法是什么?
我有一个包可以验证进程是否设置了特定的环境变量init()
,否则它会恐慌。
我这样做是为了确保在启动时正确配置该过程。
问题是这种方法不是真正可测试的(使用_test.go
文件),因为测试套件中不存在环境。
解决这个问题的最佳方法是什么?
您希望能够测试验证,还是在测试文件中完全跳过它?无论哪种方式都将使用相同的基本方法,即将验证代码分离到它自己的文件中,该文件不会在测试期间构建。如果您只想在测试期间完全跳过验证,请将整个init()
函数放入该文件中。如果您想测试验证,只需让验证代码调用您自己的 shim 以获取环境值,然后将您的 shim 放入该非测试文件中,然后将单独的 shim 放入仅在测试期间编译的文件中。
您可以使用文件头中的构建约束来控制文件是否在测试期间构建。IIRC,运行测试应用了test
约束,所以你可以检查一下。