測試類別
更新:2007 年 11 月
在本課程中,您將學習如何建立類別的執行個體,以便測試類別。
在前面的幾個課程中,您建立了一個 Persons 類別,並指定屬性、方法和事件。到目前為止,您所完成的作業是加入程式碼。現在該使用 Persons 類別,並確定它是否如預期般運作了。
建立類別的執行個體
雖然您可能不知道,不過您已經在先前的課程中使用過許多類別了。表單和控制項其實都是類別。當您將 [Button] 控制項拖曳到表單上,其實就是建立了 Button 類別的執行個體。
您也可以使用 New 關鍵字進行宣告,將程式碼中的任何類別具現化。例如,若要建立 Button 類別的新執行個體,您就要加入下列程式碼。
Dim aButton As New Button
若要使用及測試 Persons 類別,必須先建立測試專案,並加入類別模組的參考。
試試看!
若要建立類別的測試專案
開啟您在上一個課程中所建立的 Persons 專案。如果您並未儲存該專案,必須先回到上一個課程:將方法加入類別,並完成課程中的程序。
指向 [檔案] 功能表上的 [加入],然後按一下 [新增專案]。
在 [新增專案] 對話方塊的 [範本] 窗格中,按一下 [Windows Form 應用程式]。
在 [名稱] 方塊中,輸入 PersonsTest,再按 [確定]。
新的 Windows Form 專案隨即加入至 [方案總管],並且出現新的表單。
選取 [方案總管] 中的 PersonsTest 專案,然後按一下 [專案] 功能表上的 [設定為啟始專案]。
選取 [方案總管] 中的 PersonsTest 專案,然後按一下 [專案] 功能表上的 [加入參考]。
[加入參考] 對話方塊隨即出現。
按一下 [專案] 索引標籤,然後選取 [Persons],再按一下 [確定]。
按兩下表單以開啟 [程式碼編輯器],然後在程式行 Public Class Form1 之下輸入下列宣告。
Dim person1 As New Persons.Persons
這麼做會宣告一個 Persons 類別的新執行個體。您可能會覺得奇怪,為什麼要輸入 Persons 兩次?這是因為,第一個執行個體是 Persons.vb 類別模組,而第二個執行個體是該模組內的 Persons 類別。
在 [檔案] 功能表上,按一下 [全部儲存]。
測試類別
下一個步驟是加入使用者介面和使用 Persons 類別的程式碼。您將會加入使用者可輸入各屬性值 (但唯讀 Age 屬性除外) 的文字方塊、Married 欄位的核取方塊,以及可測試各項公用方法的按鈕。
試試看!
若要測試類別
在 [方案總管] 中選取 [Form1],然後按一下 [檢視] 功能表中的 [設計工具]。
從 [工具箱] 將四個 TextBox 控制項、一個 CheckBox 控制項,以及兩個 Button 控制項拖曳到表單上。
選取第一個 Button 控制項,然後在 [屬性] 視窗中將其 [Text] 屬性設定為 Update。
選取第二個 Button 控制項,然後在 [屬性] 視窗中將其 [Text] 屬性設定為 Full Name。
按兩下第一個按鈕 ([Update]),開啟 [程式碼編輯器],然後在 Button1_Click 事件處理常式中,加入以下程式碼。
With person1 .FirstName = Textbox1.Text .MiddleName = Textbox2.Text .LastName = Textbox3.Text .BirthYear = Textbox4.Text .Married = CheckBox1.Checked End With
請注意,當您輸入時,會顯示一份清單內含 Persons 類別的成員。由於它是加入做為參考,所以 IntelliSense 會顯示關於類別的資訊,就像其他任何類別一樣。
在 Button2_Click 事件處理常式中加入以下程式碼。
' Test the FullName method. MsgBox(person1.FullName) ' test the Age property and CalcAge method. MsgBox(CStr(person1.Age) & " years old") ' Test the Married property. If person1.Married = True Then MsgBox(person1.FirstName & " is married") Else MsgBox(person1.FirstName & " is single") End If
按下 F5 執行專案,並顯示表單。
在第一個文字方塊中,輸入您的名字。
在第二個文字方塊中,輸入您的中間名。
在第三個文字方塊中,輸入您的姓氏。
在第四個文字方塊中,輸入您的出生年份四位數字 (例如,1983)。
如果您已婚,請選取此核取方塊。
按一下 [Update] 按鈕,設定類別的屬性,然後再按一下 [Full Name] 按鈕。
隨即顯示三個訊息方塊。這些訊息方塊會顯示您的全名、年齡和婚姻狀態。
在 [檔案] 功能表上,按一下 [全部儲存]。
測試多載方法
如果您已完成選擇性課程:詳述:使用多載建立相同方法的多重版本,就會想要測試加入至 Persons 類別的多載方法。如果您並未完成該課程,可以立即返回完成課程,也可以略過以下程序。
試試看!
若要測試多載方法
選取 [方案總管] 中的 [Form1],然後按一下 [檢視] 功能表上的 [設計工具]。
從 [工具箱] 中,再多將兩個 Button 控制項拖曳到表單上。
選取第三個 Button 控制項,然後在 [屬性] 視窗中將其 Text 屬性設定為 With。
選取第四個 Button 控制項,然後在 [屬性] 視窗中將其 Text 屬性設定為 Without。
按兩下第一個按鈕 ([With]),開啟 [程式碼編輯器],然後在 Button3_Click 事件處理常式中,輸入以下程式碼。
MsgBox(person1.FirstName & " " & person1.MiddleInitial(True) & _ " " & person1.LastName)
請注意,當您輸入時,會顯示一份清單內含 Persons 類別的所有成員。由於它是加入做為參考,所以 IntelliSense 會顯示關於類別的資訊,就像其他任何類別一樣。
在 Button4_Click 事件處理常式中加入以下程式碼。
MsgBox(person1.FirstName & " " & person1.MiddleInitial & _ " " & person1.LastName)
按下 F5 執行專案,並顯示表單。
在第一個文字方塊中,輸入您的名字。
在第二個文字方塊中,輸入您的中間名。
在第三個文字方塊中,輸入您的姓氏。
在第四個文字方塊中,輸入您的出生年份四位數字 (例如,1983)。
如果您已婚,請選取此核取方塊。
按一下 [Update] 按鈕,設定類別的屬性,然後再按一下 [With] 按鈕。
訊息方塊隨即出現,顯示您的名字,並且在中間名縮寫後加上一個句點。
按一下 [Without] 按鈕。
訊息方塊隨即出現,顯示您的名字,並且中間名縮寫後沒有句點。
在 [檔案] 功能表上,按一下 [全部儲存]。
測試事件處理常式
如果您已完成選擇性課程詳述:處理事件,請測試加入至 Persons 類別的事件處理常式。如果您並未完成該課程,可以返回並完成,或者略過下面的程序。
試試看!
若要測試事件處理常式
選取 [方案總管] 中的 [Form1],然後按一下 [檢視] 功能表上的 [程式碼]。
將 WithEvents 陳述式加入至 person1 宣告之前,如下列程式碼所示:
WithEvents person1 As New Persons.Persons
將下列程序加入至 Form1。這個程式碼會檢查計算年齡,並根據結果顯示訊息。
Private Sub person1_AgeCalculated(ByVal Age As Integer) _ Handles person1.AgeCalculated If Age > 18 Then MsgBox("You have been over 18 for " & Age - 18 _ & " years.") Else MsgBox("You will be 18 in " & 18 - Age & " years") End If End Sub
按下 F5 執行專案,並顯示表單。
在第一個文字方塊中,輸入您的名字。
在第二個文字方塊中,輸入您的中間名。
在第三個文字方塊中,輸入您的姓氏。
在第四個文字方塊中,輸入您的出生年份四位數字 (例如,1983)。
如果您已婚,請選取此核取方塊。
按一下 [Update] 按鈕,設定類別的屬性,然後再按一下 [Full Name] 按鈕。
訊息方塊會顯示您的全名。如果您已超過 18 歲,另一個訊息方塊就會顯示已超過 18 歲多久資訊。如果您未滿 18 歲,則訊息方塊會顯示還有多久您才滿 18 歲。然後就會有另一個訊息方塊顯示您的年齡。
在 [檔案] 功能表上,按一下 [全部儲存]。
後續步驟
在本課程中,您學會如何建立測試專案,並使用它測試類別的屬性、方法和事件。在下一個課程中,您將學習如何使用繼承,根據現有類別建立類別。
下一個課程:從現有的類別建置類別:使用繼承。