51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

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

[原创] 做单元测试要会写代码吗?

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2006-4-18 12:42:22 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
请做单元测试要会写代码吗?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

5#
发表于 2006-4-24 07:59:27 | 只看该作者
Visual Unit 没有用过 可不可以介绍一下 谢谢了
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2006-4-22 01:24:23 | 只看该作者
首先什么是测试,就是发现BUG, 那对于一个代码都看不懂的人怎么去发现代码中的BUG, 况且测试代码不是但但靠什么自动生成代码的工具来实现, 很多地方都是靠你用眼睛开出问题的, 这个也是测试中的一部分叫做静态走读.
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2006-4-18 15:59:52 | 只看该作者

Visual Unit可以自动生成代码

如果用Visual Unit做单元测试的话,可以不用写代码,但是很简单的数据输入输出方面的“伪代码”还是要的。如果能看得懂下面的说明(摘自VisualUnit帮助),那就基本上可以用Visual Unit做单元测试了。

输入数据
自动为参数生成输入数据,其中,“ParamName = ”中的“=”仅表示这个对象可能需要赋值,要根据实际情况灵活处理,请参考下面的示例(黑色部分是由VU生成的,红色部分是由用户填写的。行末不要加分号,VU会自动删除“=”):

//对于基本数据类型或定义了=操作符的类型,直接将数值填在“=”后面
int i = 0
CString name = "Smith"

//未定义=操作符的结构,用.操作符给各个域赋值,VU会自动删除“=”
PERSON person =
person.name = "Smith"
person.age = 20

//可以调用对象的构造函数,VU会自动删除“=”
CMyClass obj("name", 20) =

//可以调用对象的初始化函数
CMyClass obj =
obj.Init()

//仅用于输出的参数可以不作任何处理
CString name =

为了简化问题,如果参数是指针,指针的指针,或是引用,也直接生成对象,用户只需为对象设定初始值,VU会自动做适当处理,参考测试用例代码解析。如果要给指针赋空值,则要切换到代码模式,直接修改代码。

可以视需要访问成员变量、全局变量,调用其他成员函数,语法如下:

//可以用.操作符直接访问成员变量
.mName = "王老五"
.mAge  = 100
.mName.Empty()
.mObj.Init()

//可以用.操作符调用其他成员函数
.PreCondition()

//其他地方定义的全局变量,如果是可见的,则可以直接访问
gVar = 0

只要被测试的类中定义了UNIT_TEST宏,就可以直接访问私有或保护的成员变量,参见在被测文件中添加代码。

预期输出
预期输出与输入数据的语法是一样的。如果被测试函数有返回值,会保存在名为ret的变量里,并在预期输出的框中生成"ret == ",可以直接填写预期的返回值。也可以添加其他的预期输出,例如成员变量或全局变量,与输入数据一样,可以用.操作符直接访问成员变量。每行填写一项预期输出,运算结果为布尔值的表达式都是合法的预期输出,不一定是等式,如下面的预期输出都是可行的:
ret == 3125
.mAge > 20
ret != 0
i<0 || ret>=j
str.IsEmpty()
mRect.leftTop.x == 100

VU会把第一个点操作符替换为"pObj->",如".mAge=0",生成对应的测试代码"pObj->mAge=0;",因此,表示成员变量的点操作符只能作为第一个字符。例如:.mPhase.IsEmpty()是可以的,但!.mPhase.IsEmpty()则是不合法的,会产生编译错误,这种情况可以直接写:!pObj->mPhase.IsEmpty()。
由上述可以看出,输入数据和预期输出是非常灵活的,具有很好的适应能力,即使是复杂的输入输出,也能处理。用户只需要填写第一个测试用例,其他的测试用例通过拷贝现有测试用例并修改的办法建立。在特殊情况下,可以切换到代码模式下直接编辑代码。
回复 支持 反对

使用道具 举报

该用户从未签到

2#
发表于 2006-4-18 13:11:04 | 只看该作者
至少要会写一些简单的,做单元测试肯定会涉及驱动和桩的编写的。
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-11-27 14:10 , Processed in 0.066964 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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