zoukankan      html  css  js  c++  java
  • 举例理解单元测试

     

        周一上课时老师讲了关于单元测试的内容,下面是我对单元测试的理解。

     

        单元测试是由程序员自己来完成,最终受益的也是程序员自己。可以这么说,程序员有责任编写功能代码,同时也就有责任为自己的代码编写单元测试。执行单元测试,就是为了证明这段代码的行为和我们期望的一致。那么单元测试需要测试哪些部分呢?

     

        单元测试(模块测试)是开发者编写的一小段代码,用于检验被测代码的一个很小的、很明确的功能是否正确。通常而言,一个单元测试是用于判断某个特定条件(或者场景)下某个特定函数的行为。单元测试对象也就是软件设计的最小单位,即模块,函数,类或者子过程等等。模块检测分为五块:独立路径,出错处理,模块接口,局部数据结构,边界条件。

     

    #include<stdio.h>
    #include<iostream>
    
    int Largest(int list[],int length)
    {
        int i;
        int max;
        max=list[0];
        if(length==0)
        {
            printf("输入的数组为空\n");
            return -444;
        }
        for(i=0;i<length;i++)
        {    
            if(list[i]=='.')
            {
                printf("输入的数不是整数\n");
                return -4444;
            }
            if(list[i]>max)
            {
                max=list[i];
            }       
        }
        return max;
    }
    void main()
    {
        int i;
        int len;
        int max;
        int  a[100];
        printf("若输出数组为空且最大值输出-444或者最大值输出为-4444,说明存在异常\n");
        for(int j=0;j<10;j++)
        {
            printf("\n请输入数组的长度:");
            scanf("%d",&len);
            printf("请输入%d个整数:\n",len);
            for(i=0;i<len;i++)
            {
                scanf("%d",&a[i]);    
            }
            max=Largest(a,len); 
            printf("此数组的最大值max=%d\n",max);     
        }
        system("pause");
    }

     

    上课时老师给的函数,如下:

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

    测试这段代码,经过多次思量,写出了开始那段测试代码,运行结果截图如下:

        这次的单元测试,有很多细节之处,比如,max没有初始化,length的边界不对。测试代码里,加了数组是否为空的判断,还有是否是整形数组的判断。当然还有很多没有实现的。比如一个一个输入比较麻烦,如果让它读一个文档会比较省力。这个想法因为时间关系,还没有实现。总之,学到了一些以前没有注意过的知识。

  • 相关阅读:
    使用boost的type_index打印数据类型
    display:flex;下的子元素width无效问题
    three.js 材质翻转
    qt5 打包exe执行文件
    脚本免交互生成秘钥
    脚本连接主机创建用户expect
    expect用法
    免密登录脚本expect
    shell变量的定义规则
    shell变量如何定义?
  • 原文地址:https://www.cnblogs.com/xiefengjiao/p/3590437.html
Copyright © 2011-2022 走看看