zoukankan      html  css  js  c++  java
  • cpptest测试总结

    cpptest测试总结

    项目继续,持续新增中……

    1.1 桩函数设置


    (
    函参指针赋值)

    √:fun(*p)
    {
        for(int i = 0; i<6; i++)
        p[i] = 10; 
    }
    ×:fun(*p)
    {
        for(int i = 0; i<6; i++)a[i] = 10;
        p = a;
    }

    调用次数

    static int i = 0;
    i++;
    if(1 == i)return 1;
    else if(2 == i)return 2;

    桩函数参数为void类型

    fun(void *p)
    {
     double * tt;
     tt  = (double*)p;
     tt[0] = 1.0;
    }

     

    1.2 用例设置

    cpptest倾向单元测试步骤

    1.打桩
    2.
    循环变量先设完
    3.
    数组初始化
    4.
    观察源代码中有无除0的情况

    c++调试

    #include<iostream>
    using namespace std;
    cout<<xx<<endl;
    system("pause");

    文件找不到路径

    #include<direct.h>
    fopen("down_level.out",r+);
    char buff[256];
    _getcwd(buff,256);

    文件打开失败

    1.不存在
    2.
    文件只读

    字符串拷贝隐患:在拷贝前应确认拷贝内容,包括中止符,否则将越界拷贝

    char ca_dir[128] = " ";
    for(int i = 0; i<128; i++) ca_dir[i] = "1";
    char s1[256] = " ";
    char s2[256] = " ";
    1.strcpy(s1,ca_dir);     
    ——>s1 = ……烫
    2.strncpy(s1,ca_dir,128); 
    ——>s1 = 1……1(128)
    同理:strcat……

    new失败:内存已满,申请内存过多……

    1.int A = new(std::nothrow)int[10];
    2.int B = new int[10];
    A
    中使new不抛出异常,返回NULL,且代码12运行快
    if(A! = NULL){
    ……}

    new

    int **p = new int*[k];
    for(int i = 0; i<k; i++)
    delete []p[m];
    delete []p;
    new——delete(对变量)
    new[]——delete[](对数组)

    二级指针初始化

    int *p1 = NULL;
    int **p2 = &p1;
    ——————————————
    int a[2] = {1,2};
    int *p1 = &a;
    int **p2 = &p1;

    二级数组指针初始化

    int **p = new int*[10];
    for(int i = 0; i<10; i++)
    {
      p[i] = new int[10];
    }

    函数运用:指针不能直接等于字符串???

    √:fun(*p)
    {
        char k[] = "i am rich";
        strcpy(p,k);
        return p;
    }
    ×:fun(*p)
    {
        p = "i am rich";
        return p;
    }

    结构体整体赋值为0

    struct st_a;
    st_a a;
    memset(&a,0,sizeof(st_a));
    ——————————————
    st_a a = {0};

     

    c = fun("*i am rich*");
    char fun(char* b);
    cout << b<<endl;
    ——>*i am rich*

    逻辑条件

    ||:+?-+
    &&:++
    +--+

     

  • 相关阅读:
    两个错误的解决方案
    利用BeautifulSoup爬去我爱我家的租房数据
    使用Docker安装PaddlePaddle安装过程中出现的几个问题
    将博客搬至CSDN
    iOS---实现在屏幕上实时绘图的简单效果---CAShaperLayer和UIBezierPath的简单运用
    举例理解Hibernate的三种状态(转)
    关于hibernate5的映射文件和配置文件改变(转)
    数据库事务四种隔离级别
    使用idea构建Hibernate5项目
    手把手教你如何把java代码,打包成jar文件以及转换为exe可执行文件
  • 原文地址:https://www.cnblogs.com/yeyeye123/p/10645423.html
Copyright © 2011-2022 走看看