sti*_*mms 10 testing tdd unit-testing shuffle probability
我需要一个以随机顺序返回数组的函数.我想确保它是随机的,但我不知道如何编写测试来确保数组真的是随机的.我可以多次运行代码,看看我是否多次使用相同的答案.虽然大型阵列不太可能发生碰撞,但很可能是小型阵列(比如说两个元素).
我该怎么办呢?
基本上,技巧是从您正在测试的类中提取随机性。这将允许您通过注入测试中的随机性公式来测试该类,这当然根本不是随机的。
C# 示例:
public static List<int> Randomise(List<int> list, Func<bool> randomSwap)
{
foreach(int i in list)
{
if (randomSwap)
{
//swap i and i+1;
}
}
return list;
}
Run Code Online (Sandbox Code Playgroud)
伪用法:
list = Randomise(list, return new Random(0, 1));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1251 次 |
| 最近记录: |