您的位置:首页 > 其它

用NUnit为.NET程序做测试 --- 实战

2009-04-24 12:34 726 查看
在前面我们学习了NUnit的常见属性和他的使用方法。下面我们就来简单的练习练习吧。
以下我们来写一个 简单的冒泡排序 来实战吧。
 
在Calculate类中添加一个冒泡排序方法吧。
public int [] BubbleSort (int [] array)
{
for (int i = 0; i < array.Length -1 ; i++)
{
for (int j = 0 ; j < array.Length- i -1 ; j++)
{
if (array[j] > array[j + 1])
{
int temp = array[j];
array[j] = array[j + 1];
array[j + 1] = temp;
}

}
}
return array;
}




在CalculateTest中添加测试方法,如下。

如果在此我们只想运行这一个测试方法的话,那么我们前面学习到的Ignore explicit Category等属性就用上了吧。

[Test]
public void TestBubbleSort()
{
int[] array = {-1,4,2,8,54};

int[] result = cal.BubbleSort(array);

int[] expect = {-1,2,4,8,54};

Assert.AreEqual(expect, result);
}




运行NUnit,运行。





在CalculateTest中添加测试方法

[Test]
public void TestBubbleSort2()
{
int[] array = null;

int[] result = cal.BubbleSort(array);
}




运行NUnit





显然,我们没有考虑到传入的参数是NULL的情况了。既然这样那就在完善下BubbleSort()吧:

public int [] BubbleSort (int [] array)
{
if (array ==null)
{
Console.Error.WriteLine("参数array不能为NULL");
return new int[] { };
}
for (int i = 0; i < array.Length -1 ; i++)
{
for (int j = 0 ; j < array.Length- i -1 ; j++)
{
if (array[j] > array[j + 1])
{
int temp = array[j];
array[j] = array[j + 1];
array[j + 1] = temp;
}

}
}
return array;
}




我们为BubbleSort 方法添加了对参数的不为NULL判断,如果传入的参数为NULL,那么将会给出 "参数array不能为NULL”的提示了





 

我们在上面验证了参数为int[]数组时和参数为NULL的情况。但是还有一种情况:那就是数组为空的时候。

[Test]
public void TestBubbleSort3()
{
int[] array = {};

int[] result = cal.BubbleSort(array);

int[] expect = { };

Assert.AreEqual(expect, result);
}




运行NUnit,





 

看到这个环保的绿色真是好哇。呵呵

 

最后的冒泡排序的代码如下:添加了一个是否调换位置的判断:

public int [] BubbleSort (int [] array)
{
if (array ==null)
{
Console.Error.WriteLine("参数array不能为NULL");
return new int[] { };
}
for (int i = 0; i < array.Length -1 ; i++)
{
bool isWap = false;
for (int j = 0 ; j < array.Length- i -1 ; j++)
{
if (array[j] > array[j + 1])
{
int temp = array[j];
array[j] = array[j + 1];
array[j + 1] = temp;
isWap = true;
}
}

if (!isWap)
{
return array;
}
}
return array;
}


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: