51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2684|回复: 6
打印 上一主题 下一主题

[原创] 使用类来解决函数化时[可选参数]问题

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2007-10-18 16:51:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在做函数化时,同时会对一些值进行参数化,以备后面调用。如Function AddNew(NewName,NewAge)这样。
记得曾经在51上看到有讨论函数是否可以有可选参数的问题,结果好像是不能设置可选参数。
在项目中也遇到过需要可选参数的情况。

今天刚刚读了songfang大虾的《在QTP中如何使用Class(类)》,忽然想到可以用类来解决这个问题嘛,于是立马写了出来试试
比如要建立一个Customer用户,他的许多创建时的参数的不同值会对后面有不同的影响,所以要对众参数中的某一个做一些修改
于是有了以下测试代码
Class AddNew
        Dim para1,para2,para3

        Sub Class_Initialize
                para1 = 1
                para2 = 2
                para3 = 3       
        End Sub

        Sub setPara1(byval para)
                para1 = para
        End Sub

        Sub setPara2(byval para)
                para2 = para
        End Sub

        Sub DoAdd()
                msgbox "para1=[" & para1 & "] para2=[" & para2 & "] para3=[" & para3 & "]"
        End Sub
       
End Class

Set Customer = new AddNew
Customer.DoAdd()
Customer.setPara1(111)
Customer.DoAdd()
Customer.setPara2(222)
Customer.DoAdd()
Set Customer = nothing

这样就应该可以解决这个问题了吧
刚刚想到这里,难免有些稚嫩,希望大虾们指点
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2007-10-18 17:24:30 | 只看该作者
呵呵,不如直接写3个函数算了,还用一个class给套起来了,不过思路可嘉,虽然跟重载关系不太大
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2007-10-18 19:19:55 | 只看该作者
直接把类作为参数来传递,可以解决参数太多、缺省参数、参数扩充等问题。
回复 支持 反对

使用道具 举报

该用户从未签到

4#
 楼主| 发表于 2007-10-19 11:50:23 | 只看该作者
刚写完那个类又想到,能否用面向对象的思想应用到框架的设计中去?呵呵,有点异想天开了
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2007-10-19 12:21:16 | 只看该作者
good idea, I got it. thank you
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2007-10-19 17:37:13 | 只看该作者
这个方法确实是目前比较好的方法了,advanceQTP上有关于这个问题的详细分析
回复 支持 反对

使用道具 举报

该用户从未签到

7#
发表于 2007-10-20 15:20:00 | 只看该作者
面向对象不仅可以编码,也可以用于设计和分析,比如OOD,OOA.
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-11-23 18:55 , Processed in 0.189337 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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