单元测试:查找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;
}
比如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; //返回特殊值
}
修改后的测试程序:
#include<iostream>
#define null -858993460
using namespace std; void main()
{
int largest(int list[],int length); int a[]={,,},b[]={-,-,-},c[],d[]={,,,},e[]={},max; max=largest(a,);
cout<<max<<endl;
max=largest(b,);
cout<<max<<endl;
max=largest(c,);
cout<<max<<endl;
max=largest(d,);
cout<<max<<endl;
max=largest(e,);
cout<<max<<endl;
} int largest(int list[],int length)
{
int i,max=list[];
if(list==NULL||length==)
{
cout<<"error!input null!"; //输出提示信息
return ; //返回特殊值
} for(i=;i<(length);i++)
{
if(list[i]>max)
{
max=list[i];
}
}
return max; }

总结:
单元测试可以使代码规范,代码有效性,健壮性体现出来。面对程序整合时的种种不可预知问题,优化过的代码更加有效,BUG也更少,在软件开发中,单元测试必不可少。
单元测试:查找list[]中的最大值的更多相关文章
- 515. Find Largest Value in Each Tree Row查找一行中的最大值
[抄题]: You need to find the largest value in each row of a binary tree. Example: Input: 1 / \ 3 2 / \ ...
- SQL Server 2008 R2——查找最小nIndex,nIndex存在而nIndex+1不存在 求最小连续数组中的最大值
=================================版权声明================================= 版权声明:原创文章 谢绝转载 请通过右侧公告中的“联系邮 ...
- 查找n个数字中的最大值
闲来无事,试试用arg_list查找n个数字中的最大者. 又因为本人喜欢模板, 所以就早早的写了以下代码, 没有经过严格测试. /*********************************** ...
- 如何查找MySQL中查询慢的SQL语句
如何查找MySQL中查询慢的SQL语句 更多 如何在mysql查找效率慢的SQL语句呢?这可能是困然很多人的一个问题,MySQL通过慢查询日志定位那些执行效率较低的SQL 语句,用--log-slow ...
- 查找图像中椭圆轮廓的快速随机hough变换
查找图像中椭圆轮廓的快速随机hough变换 图像中椭圆轮廓的查找在视频监控等领域有着广泛的应用,经典hough变换给我们提供了一种查找各种图形轮廓的方法,特别是在直线查找方面具有非常高的精确度.但是由 ...
- Java对二叉搜索树进行插入、查找、遍历、最大值和最小值的操作
1.首先,须要一个节点对象的类.这些对象包括数据.数据代表存储的内容,并且还有指向节点的两个子节点的引用 class Node { public int iData; public double dD ...
- js 查找数组中某个字符出现的次数
1. js 查找数组中某个字符出现的次数 代码示例 let arr = ['asd', 'green', 'yeadt', 'red', 'wati', 'red', 'red'] let index ...
- 利用js查找页面中的内链,外链
起初没听说过内链外链,只有链接锚文本,在面试中被问到如何查找到页面中的内链和外链,就在想,什么是内链和外链啊??????? 后来面试官给我解释了一下他们的区别,自己稍微懂了,自己当时回答的是通过获取a ...
- Excel中提取最大值的问题
在使用excel的时候,碰到了一个如下的问题 意思是以每个字母为条件,取这个字母下面的数字中的最大值,需要注意一个问题是每个字母下面的数字个数不一定相等,例如d下面有四个数字,可以设置如下公式解决: ...
随机推荐
- xml、文件操作功能类
我一个项目中用到的,里面的方法不是太通用,但是可以从里面找到一些有用的代码,以后慢慢添补更新: FileUtil.xml package com.novel.util; import java.io. ...
- 对struct和class使用大括号初始化的测试
#include <iostream> using namespace std; struct struct1{ /* struct1(){ cout<<"this ...
- equals和=,==的区别
一. ==和equals的区别 1. ==是运算符 2. equals是String对象的方法 一般有两种类型的比较 1. 基本数据类型的比较 2. 引用对象的比较 1. 基本数据类型的比较 ==和e ...
- 基于php5.6 php.ini详解
PHP中auto_prepend_file与auto_append_file的用法 第一种方法:在所有页面的顶部与底部都加入require语句.例如:?123require('header.php') ...
- 奥迪--A6L
-型号:A6L -价格:42-75W -动力:1.8T/2.5L/3T -变速箱:7挡双离合/CVT无级变速/7挡双离合 -长宽高:5.04,1.87,1.47 -油箱:75L -发动机:EA888 ...
- P1074 靶形数独 - 40
#include <bits/stdc++.h> #define searchnext(x, y) y == 9 ? search(x + 1, 1) : search(x, y + 1) ...
- openfire二次开发eclipse环境搭建
转自:http://blog.csdn.net/daigua245/article/details/7918243 1.将openfire源码项目解压到(如果是从SVN CO下来的则不用)eclips ...
- cordova 打包遇到的一些坑
最近在打包cordova应用的时候遇到不少坑,还是记录下来,免得以后遇到又浪费时间 1.第一个是图片包含中文文字导致的,找了很久,偶然看到一篇文章,有截图如下,忘了哪篇了,不然甩个链接, ,所以下次编 ...
- 求文件的m至n行
#!/usr/bin/env python def read_file(file_name,start,stop): start_line = 0 try: with open(file_name) ...
- [Android Tips] 2. Disable recent apps dialog on long press home button
public void onWindowFocusChanged(boolean hasFocus) { super.onWindowFocusChanged(hasFocus); Log.d(&qu ...