51Testing软件测试论坛

标题: 使用类来解决函数化时[可选参数]问题 [打印本页]

作者: 木卫十二    时间: 2007-10-18 16:51
标题: 使用类来解决函数化时[可选参数]问题
在做函数化时,同时会对一些值进行参数化,以备后面调用。如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

这样就应该可以解决这个问题了吧
刚刚想到这里,难免有些稚嫩,希望大虾们指点
作者: jackymail    时间: 2007-10-18 17:24
呵呵,不如直接写3个函数算了,还用一个class给套起来了,不过思路可嘉,虽然跟重载关系不太大
作者: yabest    时间: 2007-10-18 19:19
直接把类作为参数来传递,可以解决参数太多、缺省参数、参数扩充等问题。
作者: 木卫十二    时间: 2007-10-19 11:50
刚写完那个类又想到,能否用面向对象的思想应用到框架的设计中去?呵呵,有点异想天开了
作者: yuqingannie    时间: 2007-10-19 12:21
good idea, I got it. thank you
作者: danmy    时间: 2007-10-19 17:37
这个方法确实是目前比较好的方法了,advanceQTP上有关于这个问题的详细分析
作者: photon    时间: 2007-10-20 15:20
面向对象不仅可以编码,也可以用于设计和分析,比如OOD,OOA.




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2