我有一个带有单元测试的Go文件,其中一些使用了一个公共变量.另一个全局变量用于我正在测试的代码中.所有这些都可能导致问题.
在Go中,当我们执行位于同一文件中的测试时,它们是如何运行的?并行或下一个在上一个完成之前不会启动?
我有用于math/rand从泊松和另一个从二项式分布“随机”采样的函数。它经常被其他也返回随机值的函数使用,比如h(g(f()))wheref() g()和h()are random 函数。
每次程序运行时,我都会rand.Seed(n)打电话main()来选择不同的种子,并且运行良好。
我的问题是针对这些 PRNG 函数以及使用内置testing包使用它们的函数的单元测试。我想消除随机性,以便我可以有一个可预测的值进行比较。
在哪里放置恒定值种子以获得确定性输出的最佳位置?在测试文件的 init() 或每个测试函数内部,还是其他地方?