在前面我们学习了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; }