对源程序的修改:
首先max未初始化:用list[0]来作为max的初始值;
然后发现for循环结束条件有错:将for循环中i < length-1修改成为i < length
异常处理,将抛出一个异常
编译源文件并运行该测试:增加提示信息;
修改后的测试程序:
#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; }
总结:
单元测试有不少的优点,能够给我们的工作带来很大的帮助。单元测试的优点1.帮助开发人员编写代码,提升质量、减少bug。如果大家分析一下我们bug原因的构成,我想有会有一部分bug的原因是开发人员在编写工作代码的时候没有考虑到某些case或者边际条件。造成这种问题的原因很多,其中很重要的一个原因是我们对工作代码所要完成的功能思考不足,而编写单元测试,特别是先写单元测试再写工作代码就可以帮助开发人员思考编写的代码到底要实现哪些功能。