相信對JAVA有一定了解的朋友一定對類這個名詞不陌生,但是大家可能沒有想過在VBS中使用Class類吧,其實Class類在自動化測試中是相當常用的,對於代碼量增大時,類的結構化就充分體現出了它強大的優勢,下面我們就來看一下類的組成部分以及一些用法。
初始化與終結化的應用
使用Class語句可以創建一個對象,可以為它編寫字段、屬性及方法,它只有兩個對象事件——Initialize與Terminate。首先來看一個簡單的Class示例:
Set MyUser = New User
Class User
'Initialize事件相當於構造函數
Private Sub Class_Initialize '當這個類被創建時執行
MsgBox "類開始"
End Sub
'Terminate事件相當於析構函數
Private Sub Class_Terminate '當類被銷毀時執行
MsgBox "類結束"
End Sub
End Class
Get與Set的應用
Class里面使用Let語句,設置屬性值、Get語句,獲取屬性值或對象引用。具體示例如下:
Set MyUser = New User
MyUser.MyAge = "22" '設置對象的MyAge屬性值
MyUser.Myname = "Sirrah" '設置對象的Myname屬性值
MyUser.ToString '調用對象的ToString方法
Class User
Private Str_Name '聲明變量Str_Name
Private Int_Age '聲明變量Int_Age
'Property Get語句,獲取屬性值或對象引用,Default只與Public一起使用,表示該屬性為類的默認屬性
Public Property Get Myname
Myname = Str_Name
End Property
Public Property Get MyAge
MyAge = Int_Age
End Property
'Property Let語句,設置屬性值
Public Property Let Myname(New_Name)
Str_Name = New_Name
End Property
Public Property Let MyAge(New_Age)
Int_Age = new_age
End Property
'類方法
Public Sub ToString()
MsgBox "姓名:"+Me.Myname+" 年齡:"+Me.MyAge
'Me相當於Java里面的This
End Sub
End Class
如何調用對象
用VBScript創建的對象並不是真正的面向對象,它不能繼承和實現多態,但是在QTP對象模型Utility中,提供了一個RegisterUserFunc方法可以覆寫對象的方法,但這也不是真正意義上的面向對象。Class及其成員如何創建,上面已經簡單介紹過,若要對其中的一些語句進一步了解,還需要去仔細閱讀一些參考文檔。下面我們來看看如何調用對象:
Dim MyUser '定義對象變量名,注意變量名不能與類名相同,即使是大小寫不同 Set MyUser = New User '創建對象用New語句 MyUser.UserName = "Sirrah" '給屬性賦值 MyUser.ToString() '調用方法
