2

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

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

现在我需要支持 DataSet、HashTable 和其他 Collections 等数据类型。

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

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

4

2 回答 2

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();
        }
于 2009-03-24T07:57:10.873 回答
0

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

于 2009-03-24T07:51:47.157 回答