• 学会单元测试


    上次软工课上,老师讲到了单元测试,而且还通过一个简单的例子讲解了一下,霎时感觉单元测试真的很重要。当老师提到单元测试的时候,哥在下面还暗暗自喜了一番,因为之前自己学java的时候用到了单元测试(junit)。过了一会,建民老师给了一段很简单的代码:就是一个找最大值,核心代码都给出来了,让我们这些鸟儿们给他找错。代码如下:

    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;
    }

    我现在对java情有独钟,有强大的编程工具和众多的类库,用起来很方便,很快我就测试起来了。先来了第一组普通的数据1,2,3;出乎意料出来两个中间值2,神马情况,仔细一看,建民老师脱“1”而去,这么赤裸裸的~.~,大家还是都能发现的是吧!哈哈,于是把for(i = 0; i < (length – 1); i ++ )改成了for(i = 0; i < length; i ++ ),再次运行结果对了。

    就像建民老师一直在说找一些极端的数据,嗯  应该这样,我们每个人都在很认真,高度集中的在测试。老师,我们注意力高度集中,您给的时间还有限,在这个时间您说的每句话,学生们都很纠结是听还是不听,这是一个矛盾,盾着盾着。。。时间到了。。。此处省去几十个字。。。还是专心搞博客吧,测试了一组乱序数据:3,6,5,8,10;结果是10,嗯,没问题。虽然很纠结但还是矛盾之中听到了老师一直再提什么是整数,是啊,整数都包括什么啊!。负数,没错,搞一组测试数据,-1,-6,-4,-3,-7.结果竟然出来一个0(max我初始化为0了),不是该-1么。0比任何负数都大,这么个初值显然不合适啊。那怎么办呢,把数组中的第一个值当成max的初值,结果就对了。此外还对一些空数组做了一下提示处理:

    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
            {
                System.out.println("数组为空");
            }
            return max;
        }

    好了,整个单元测试做完了,那么简单的一个代码,缺时应该考虑很多方面,倘若不做单元测试,这样的bug等到整个项目快要做完的时候再去处理,恐怕到时候就不知所措了。还是早发现,早治疗吧。

  • 相关阅读:
    C++ int与string的相互转换(含源码实现)
    二维数组名和二级指针
    一道算法题-从1到n整数中1出现的次数
    一道算法题-求三个矩形的交集矩形。
    位域
    计划
    Bigtable:一个分布式的结构化数据存储系统
    The Google File System 中文版
    HIVE和HBASE区别
    区分 hdfs hbase hive hbase适用场景
  • 原文地址:https://www.cnblogs.com/zhangyongJava/p/zhang.html
Copyright © 2020-2023  润新知