我无法在Golang中测试Fatals,因此无法获得100%的代码覆盖率。
我发现了包括此问题在内的一些问答,但由于帖子的答案相互矛盾,我迷失了方向。 一方面,可以检查Golang中的代码覆盖率。 另一方面,一些提倡者则忽略了对
尝试次数
作为解决方法,我将所有
问题
尽管我能够获得100%的代码覆盖率,但我并不满意,因为我基本上是滥用
when the program, or its part, has reached an unrecoverable state
根据这个定义,我的代码中有多个片段可能会引起恐慌,而应该使用
由于这个原因,我发现它对除main之外的所有函数和包有用,它可以返回错误,而不是直接调用log.Fatal。 然后可能是main决定是否退出错误的决定。 无论在什么情况下,无论什么情况都会导致收益递减,尝试获得100%的测试覆盖率,因此称其足够好也可以。
我可以建议的一个技巧是,不要调用
包裹中的任何地方。 它可以不导出,因此其他软件包无法设置或使用它。 然后在测试中,您可以将其替换为:
或您想做什么。
我需要测试时间时使用这种技巧。现在或类似的东西。