클래스 테스트
업데이트: 2007년 11월
이 단원에서는 클래스를 테스트하기 위해 클래스의 인스턴스를 만드는 방법을 배웁니다.
앞의 단원에서는 Persons 클래스를 만들어 속성, 메서드 및 이벤트를 추가했습니다. 지금까지는 코드를 추가하기만 했지만 이번에는 Persons 클래스를 사용하여 이 코드가 제대로 작동하는지 확인합니다.
클래스의 인스턴스 만들기
설명은 없었지만 이전의 여러 단원에서는 클래스를 사용했습니다. 실제로 폼과 컨트롤도 클래스입니다. Button 컨트롤을 폼으로 끌어 오면 Button 클래스의 인스턴스가 만들어집니다.
또한 코드에서 New 키워드를 사용한 선언을 통해 원하는 모든 클래스를 인스턴스화할 수 있습니다. 예를 들어, Button 클래스의 새 인스턴스를 만들려면 다음 코드를 추가합니다.
Dim aButton As New Button
Persons 클래스를 사용하고 테스트하려면 먼저 테스트 프로젝트를 만들고 클래스 모듈에 참조를 추가해야 합니다.
실습
클래스에 대한 테스트 프로젝트를 만들려면
이전 단원에서 만든 Persons 프로젝트를 엽니다. 프로젝트를 저장하지 않았으면 이전 단원 클래스에 메서드 추가로 돌아가 저장 절차를 완료하십시오.
파일 메뉴에서 추가를 가리킨 다음 새 프로젝트를 클릭합니다.
새 프로젝트 대화 상자의 템플릿 창에서 Windows Forms 응용 프로그램을 클릭합니다.
이름 상자에 PersonsTest를 입력한 다음 확인을 클릭합니다.
새 Windows Forms 프로젝트가 솔루션 탐색기에 추가되며 새 폼이 표시됩니다.
솔루션 탐색기에서 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).
기혼인 경우 확인란을 선택합니다.
업데이트 단추를 클릭하여 클래스의 속성을 설정한 다음 전체 이름 단추를 클릭합니다.
메시지 상자 세 개가 나타나고 각 메시지 상자에 이름, 나이 및 결혼 상태가 표시됩니다.
파일 메뉴에서 모두 저장을 클릭합니다.
오버로드된 메서드 테스트
자세히 보기: 재정의를 사용하여 동일 메서드의 여러 버전 만들기 단원(옵션)을 완료했으면 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).
기혼인 경우 확인란을 선택합니다.
업데이트 단추를 클릭하여 클래스의 속성을 설정한 다음 With 단추를 클릭합니다.
메시지 상자가 나타나고 이 메시지 상자에 중간 이니셜 다음에 마침표가 있는 이름이 표시됩니다.
Without 단추를 클릭합니다.
메시지 상자가 나타나고 이 메시지 상자에 중간 이니셜 다음에 마침표가 없는 이름이 표시됩니다.
파일 메뉴에서 모두 저장을 클릭합니다.
이벤트 처리기 테스트
자세히 보기: 이벤트 처리 단원(옵션)을 완료했으면 Persons 클래스에 추가한 이벤트 처리기를 테스트해 볼 수 있습니다. 이 단원을 완료하지 않았다면 지금 되돌아가서 완료하거나 다음 단계를 건너뜁니다.
실습
이벤트 처리기를 테스트하려면
솔루션 탐색기에서 Form1을 선택한 다음 보기 메뉴에서 코드를 클릭합니다.
다음 코드와 같이 person1 선언 앞에 WithEvents 문을 추가합니다.
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).
기혼인 경우 확인란을 선택합니다.
업데이트 단추를 클릭하여 클래스의 속성을 설정한 다음 전체 이름 단추를 클릭합니다.
이름이 표시된 메시지 상자가 나타납니다. 18세 이상이면 18번째 생일로부터 경과한 시간을 알려 주는 다른 메시지 상자가 나타나고, 17세 이하이면 18번째 생일까지 남은 시간을 알려 주는 메시지 상자가 나타납니다. 그런 다음 다른 메시지 상자에 현재 나이가 표시됩니다.
파일 메뉴에서 모두 저장을 클릭합니다.
다음 단계
이 단원에서는 테스트 프로젝트를 만들고 이를 사용하여 클래스의 속성, 메서드 및 이벤트를 테스트하는 방법을 배웠습니다. 다음 단원에서는 상속을 사용하여 기존 클래스를 기반으로 클래스를 만드는 방법을 배웁니다.
다음 단원: 기존 클래스를 기반으로 클래스 만들기: 상속 사용