单元测试初试

       听说下节课要带电脑啊,啊/吃惊,民哥太别出心裁了吧,“到时候一教室的电脑肯定特别壮观”,“永哥的电脑就能坚持十分钟,那他怎么办”,“我代码写的不好,到时候肯定丢死人了”,就在大家七嘴八舌,议论纷纷的时候,我们终于迎来了《软件工程》。

       一上课民哥就给了我们一粒定心丸,“我让你们写的程序特别简单,就比‘hello word’难一点,而且代码我也给你们”,哦,这样我们就安心多了。嘻嘻,这节课我们主要学的是单元测试,而且是现场测试,查找List[]的最大值。

民哥给的代码是这样的:

int Largest(int list[], int length)
{
    int i,max;
    for(i = 0; i < (length – 1); i ++ )
    {
          if(list[i] > max) 
          {
             max=list[i];
          }
     }
     return max;
}

测试过后的结果为:

最大值竟然是3,返回去看源程序,原来i的长度定小了,并且max没有赋初值,修改后的程序为:

int Largest(int List[],int length)
{
int i,max=List[0];
if ( List == NULL|| length == 0)
      {
       return 0;
       }
        for(i=0;i<length;i++)
        {
          if(List[i]>max)
           {
            max=List[i];
            }
         }
         return max;
}

 

结果为:

但在限时调程序的过程中,民哥一直强调如果输入的不是整数怎么办如果输入中有0怎么办,如果数组为空怎么办,课后我就修改了一下代码:

int Largest(int list[],int length)
    {
        int i,max=0;
        if(list!=null&&length>0)
        {
            max=list[0];
            for(i=0;i<length;i++)
            {
                if(list[i]>max)
                {
                    max=list[i];    
                }
            }
        }
        else
        {
           printf("数组为空!");
        }
        return max;
    }

这样就好多了,通过这节课我知道了什么是单元测试:单元测试是开发者编写的一小段代码,用于检验被测代码的一个很小的、很明确的功能是否正确。使用单元测试这个简单有效的技术就是为了令代码变得更加完美。这个我是真真的体会到了,把原来存在错误的代码变得现在这么完美,单元测试真的很重要!在以后写代码的时候要多用单元测试每个模块,养成这样的好习惯,以后代码才会变得简单易懂。

 

posted on 2014-03-09 22:48  菜鸟木木  阅读(184)  评论(1编辑  收藏  举报

导航