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

在前面我们学习了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,运行。

1

CalculateTest中添加测试方法

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

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

运行NUnit

2

显然,我们没有考虑到传入的参数是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”的提示了

3

 

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

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

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

    int[] expect = { };

    Assert.AreEqual(expect, result);
}

运行NUnit,

4

 

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

 

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

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;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值