您将如何对包含哈希表数据类型的函数进行单元测试?

时间:2009-03-24 07:03:52

标签: unit-testing

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

最初我为基本数据类型生成它们,如int,float,double,string等。

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

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

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

1 个答案:

答案 0 :(得分:2)

您需要从代码中抽象出哈希表实现,以便在单元测试时对其进行模拟,注入或存根。

只需创建一个名为IHashTable的接口,然后通过实现接口创建具体实现。然后让所有使用哈希表的类现在都使用IHashTable。然后向其构造函数添加一个参数,该参数接受IHashTable。

然后当您在IHashTable接口的模拟或存根中进行单元测试传递时。

模拟:http://en.wikipedia.org/wiki/Mock_object