51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 2748|回复: 5
打印 上一主题 下一主题

CUnit单元测试,分支覆盖,怎么打桩

[复制链接]
  • TA的每日心情
    擦汗
    2016-7-18 10:53
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    跳转到指定楼层
    1#
    发表于 2017-7-16 12:38:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    现在举个列子:
    source.c
    void doSomething()
    {
        void *ptr = null;
        FILE *fp = null;
        ptr = (void *)malloc(128);
        if(ptr == null)
        {
            ......
        }
        else
        {
           fp = fopen("a.txt","r+");
           if(fp == null)
            ......
        }
    }
    test.c
    void testCase1() /* 覆盖内存申请成功,但fopen文件失败的分支 */
    {
        ...
    }
    void testCase2() /* 覆盖内存申请成功,但fopen文件成功的分支 */
    {
        ...
    }
    void testCase3() /* 覆盖内存申请失败的分支 */
    {
        ...
    }
    int main()
    {
       testCase1();
       testCase2();
       testCase3();
    }

    1、这个case怎么写才能实现呢?source.c文件是不允许做任何修改的,你只是去测试这个文件里面的函数。
    2、一个函数里面有更多分支,怎么做呢?

    求大神给个例子,跪求。。
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    该用户从未签到

    2#
    发表于 2017-7-16 14:46:14 | 只看该作者
    1、case1  中删除a.txt然后打开, case2中创建a.txt然后打开,case3中我没有好的办法无限malloc直到失败,在去执行source.c的

    评分

    参与人数 1测试积点 +10 收起 理由
    lsekfe + 10 积极回复获得测试积点10 赶快去商城换取奖.

    查看全部评分

    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    8 小时前
  • 签到天数: 2655 天

    连续签到: 7 天

    [LV.Master]测试大本营

    3#
    发表于 2017-7-17 08:01:49 | 只看该作者
    就是对操作对象的操作了
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    擦汗
    2016-7-18 10:53
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    4#
     楼主| 发表于 2017-7-17 11:51:42 | 只看该作者
    jafo 发表于 2017-7-16 14:46
    1、case1  中删除a.txt然后打开, case2中创建a.txt然后打开,case3中我没有好的办法无限malloc直到失败,在 ...

    好像这样不是最好的处理。 好多地方都在说桩函数,就是不清楚怎么去用或者是编译。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    擦汗
    2016-7-18 10:53
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    5#
     楼主| 发表于 2017-7-17 11:52:20 | 只看该作者
    jingzizx 发表于 2017-7-17 08:01
    就是对操作对象的操作了

    能给个example吗?
    linux 的
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    6#
    发表于 2017-7-26 19:32:29 | 只看该作者
    jhuani 发表于 2017-7-17 11:51
    好像这样不是最好的处理。 好多地方都在说桩函数,就是不清楚怎么去用或者是编译。

    这个函数里面都是调用的系统函数没法再函数内部打桩了,只能在外面做,用gcc source.c编译就行
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-4-20 16:52 , Processed in 0.073219 second(s), 23 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表