为单元测试生成随机值哈希表数据类型

时间:2009-03-24 05:57:54

标签: c# unit-testing nunit hashtable random

我的项目通过获取最小值和最大值为每种数据类型生成很少的值(相等的分区方法)。我正在为功能测试做这个生成值,我实际上是将这个值传递给nunit伙伴,max amd min适用于int,float,double等,这些值是测试数据。

最初我为基本数据类型生成了像int,float,double,string等。

现在我需要支持数据类型,如DataSet,HashTable和其他集合。

public DataSet MySampleMethod(int param1, string param2, Hashtable ht)

为了测试这个函数,我可以传递int和string的值,但是如何传递ht的测试数据或者如何为哈希表生成测试数据?

2 个答案:

答案 0 :(得分:2)

首先 - 我总是将我的随机值用于单元测试,以便嘿可重复 - 但是,(使用Dictionary<,>代替HashTable,但等效):

        Random rand = new Random(123456); // note seed
        Dictionary<int, double> lookup = new Dictionary<int, double>();
        for (int i = 0; i < 5000; i++)
        {
            lookup[rand.Next(100000)] = rand.NextDouble();
        }

答案 1 :(得分:0)

您根本不应使用随机数据进行单元测试。测试可能会随机传递或失败,具体取决于所选的数据,当您尝试找出失败的原因时,您可能很难调试代码,因为您无法以可预测的方式重复失败。