51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 4908|回复: 4
打印 上一主题 下一主题

cppunit如何测试多个case

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2006-3-22 17:39:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这个是cppunit自带的某个case中的一段代码:
void ExampleTestCase::example ()
{
        CPPUNIT_ASSERT_DOUBLES_EQUAL (1.0, 1.1, 0.05);
        CPPUNIT_ASSERT (1 == 0);
        CPPUNIT_ASSERT (1 == 1);
}
这样应该是有三个case吧,为何运行的时候runs:...Errors:...Failures:...的信息都只有1呢,似乎只运行了第一个case,后面的不运行的,不知道为何呢?怎样才能运行多个case啊 而不重复写代码,就我现在知道的水平,如果要运行多个的话 每次都要写个类似上面的函数,这样太累了吧 应该有更好的方法吧,有人知道吗?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2006-3-22 23:10:09 | 只看该作者
实际工作中,像你所列的这种格式,在复杂情况下是无法适应的,例如,一个函数它可能有除了返回值外还有输出参数,还可能修改了成员变量,很难弄的。
建议看一下这小册子:http://www.unitware.cn/Download/UnitTest.chm,第一部份的第三节是讲编写测试代码的。

[ 本帖最后由 VisualUnit 于 2006-3-22 23:13 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2006-3-23 10:07:31 | 只看该作者
谢谢楼上的
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2006-3-28 20:09:55 | 只看该作者
原帖由 lesley 于 2006-3-22 17:39 发表
这个是cppunit自带的某个case中的一段代码:
void ExampleTestCase::example ()
{
        CPPUNIT_ASSERT_DOUBLES_EQUAL (1.0, 1.1, 0.05);
        CPPUNIT_ASSERT (1 == 0);
        CPPUNIT_ASSERT (1 == 1);
}
这样应该是有 ...


在cppunit中,一个函数就是一个case,这样的话,你测试一个函数就需要好几个测试函数(相当于好几条case),这样对于函数命名以及测试都不是很方便,所以我这么做:当一个函数需要设计好几个测试数据时,我用for循环,循环体内用switch,switch的每条case就是一个测试用例。而for循环保证每条case都会走到。这种情况下,有一点需要注意:如果前面的case(比如case1)没有通过的话,后边的case就不会执行,运行结果也会是失败状况。这个问题很好解决,你可以让它每条case弹出不同的alert,就知道是执行到哪条case了。当然这样有点烦,你也可以想别的办法。我通常是设断点。
回复 支持 反对

使用道具 举报

该用户从未签到

5#
 楼主| 发表于 2006-3-29 10:38:51 | 只看该作者
谢谢版主
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-11-8 22:51 , Processed in 0.066757 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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