首页 > 其他 > 详细

单元测试:查找list[]中的最大值

时间:2014-03-10 09:31:47      阅读:431      评论:0      收藏:0      [点我收藏+]

 

1
<strong> 原始代码如下:</strong>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
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;
}

 

比如int a[]={7,8,9},b[]={-3,-1,-5},c[3],d[4]={7,8,7,8},e[]={0}........

这些例子有特殊性,在编写测试单元时,要选取边界值,特殊值。比如数组里都是整数,都是负数,有正有负,空,只有一个元素,存在重复的最大值.......


 对源程序的修改:

首先max未初始化:用list[0]来作为max的初始值;

然后发现for循环结束条件有错:将for循环中i < length-1修改成为i < length

异常处理,将抛出一个异常

编译源文件并运行该测试:增加提示信息;

if(list==NULL||length==0)
 {
  cout<<"error!input null!";      //输出提示信息
  return 0;                             //返回特殊值
 }

 

 

 修改后的测试程序:

bubuko.com,布布扣
#include<iostream>
#define null -858993460
using namespace std;

void main()
{
    int largest(int list[],int length);

    int a[]={7,8,9},b[]={-3,-1,-5},c[3],d[4]={7,8,7,8},e[]={0},max;
    
    max=largest(a,3);
    cout<<max<<endl;
    max=largest(b,3);
    cout<<max<<endl;
    max=largest(c,0);
    cout<<max<<endl;
    max=largest(d,4);
    cout<<max<<endl;
    max=largest(e,1);
    cout<<max<<endl;
}

int largest(int list[],int length)
{
    int i,max=list[0];
    if(list==NULL||length==0)
    {
        cout<<"error!input null!";      //输出提示信息
        return 0;                       //返回特殊值
    }

    for(i=1;i<(length);i++)
    {
        if(list[i]>max)
        {
            max=list[i];
        }
    }
    return max;

}
bubuko.com,布布扣

bubuko.com,布布扣

 

总结:

单元测试可以使代码规范,代码有效性,健壮性体现出来。面对程序整合时的种种不可预知问题,优化过的代码更加有效,BUG也更少,在软件开发中,单元测试必不可少。

单元测试:查找list[]中的最大值,布布扣,bubuko.com

单元测试:查找list[]中的最大值

原文:http://www.cnblogs.com/zhaotian/p/3590893.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!