我正在尝试为一个模块编写单元测试,该模块会根据特定条件为我提供一个随机数字列表。
我正在写的特定测试是对原始序列的重新洗牌。我正在测试那个
问题在于,有时序列是的顺序相同。处理这个问题的最佳方法是什么?
我正在使用NUnit(但如果有帮助,可以使用其他测试框架)。
答案 0 :(得分:6)
您如何生成随机数?
我首先控制你的随机数生成器的种子,并重新定义你的第三个测试,“当我们使用不同的种子时,序列的顺序不一样”。
答案 1 :(得分:5)
这些要求不符合。如果你真的随意改组,那么显然列表可以保持不变。
虽然有一个选择。创建随机数生成器时,可以传入“种子”。如果你总是传入相同的种子,你应该总是得到相同的答案。现在您已经随机抽取了随机函数,您可以轻松地进行单元测试。
答案 2 :(得分:2)
什么是最好的交易方式 这个?
在要求得到确定之前,真的没有办法“处理它”。要么是shuffle确保序列无序(在这种情况下,shuffle不是真正的“随机”),或者它们的顺序是相同的。如果shuffle以相同的顺序返回某些内容是可以接受的,那么你可以编写一个测试来检查大量运行中的结果与预期分布的分布,但这与测试“随机”的具体情况相同。 “结果。如果shuffle不能返回相同的顺序,那么你可以多次运行该函数以给你一个可接受的置信水平,即shuffle不会返回相同的顺序,所以同样的一般原则适用。使用大量运行并根据可接受的公差测量结果。
希望这有帮助!