次の方法で共有


クラスのテスト

更新 : 2007 年 11 月

このレッスンでは、クラスをテストするために、クラスのインスタンスを作成する方法について説明します。

これまでのレッスンでは、Persons クラスを作成し、そのプロパティ、メソッド、およびイベントを定義しました。これで、コードの追加は完了したため、Persons クラスを使用して、期待どおりに動作することを確認します。

クラスのインスタンスの作成

気付いていないかもしれませんが、以前の多くのレッスンで既にクラスを使用しています。フォームとコントロールは、実際にはクラスです。Button コントロールをフォームにドラッグすると、実際には Button クラスのインスタンスを作成していることになります。

New キーワードによる宣言を使用して、コードでクラスのインスタンスを生成することもできます。たとえば、Button クラスの新しいインスタンスを作成するには、次のコードを追加します。

Dim aButton As New Button

Persons クラスを使用してテストするには、テスト プロジェクトを作成してから、クラス モジュールに参照を追加する必要があります。

やってみよう

クラスのテスト プロジェクトを作成するには

  1. 前のレッスンで作成した Persons プロジェクトを開きます。このプロジェクトを保存していない場合は、まず前のレッスンの「クラスへのメソッドの追加」に戻り、手順を完了する必要があります。

  2. [ファイル] メニューの [追加] をポイントし、[新しいプロジェクト] をクリックします。

  3. [新しいプロジェクト] ダイアログ ボックスの [テンプレート] ペインで、[Windows フォーム アプリケーション] をクリックします。

  4. [プロジェクト名] ボックスに「PersonsTest」と入力し、[OK] をクリックします。

    新しい Windows フォーム プロジェクトがソリューション エクスプローラに追加され、新しいフォームが表示されます。

  5. ソリューション エクスプローラで PersonsTest プロジェクトをクリックし、[プロジェクト] メニューの [スタートアップ プロジェクトに設定] をクリックします。

  6. ソリューション エクスプローラで PersonsTest プロジェクトをクリックし、[プロジェクト] メニューの [参照の追加] をクリックします。

    [参照の追加] ダイアログ ボックスが表示されます。

  7. [プロジェクト] タブをクリックして [Persons] をクリックし、[OK] をクリックします。

  8. フォームをダブルクリックしてコード エディタを開き、Public Class Form1 行のすぐ後に次の宣言を入力します。

    Dim person1 As New Persons.Persons
    

    これにより、Persons クラスの新しいインスタンスが宣言されます。Persons を 2 回入力する必要があるのは、1 つ目のインスタンスは Persons.vb クラス モジュールを示し、2 つ目のインスタンスがそのモジュール内の Persons クラスを示すためです。

  9. [ファイル] メニューの [すべてを保存] をクリックします。

クラスのテスト

次の手順では、Persons クラスを使用するユーザー インターフェイスとコードを追加します。各プロパティ (読み取り専用の Age プロパティを除く) の値をユーザーが入力するためのテキスト ボックス、Married フィールドのチェック ボックス、および各パブリック メソッドをテストするためのボタンを追加します。

やってみよう

クラスをテストするには

  1. ソリューション エクスプローラで Form1 を選択し、[表示] メニューの [デザイナ] をクリックします。

  2. ツールボックス から、4 つの TextBox コントロール、1 つの CheckBox、および 2 つの Button コントロールをフォームにドラッグします。

  3. 1 つ目の Button コントロールを選択し、[プロパティ] ウィンドウで Text プロパティを Update に設定します。

  4. 2 つ目の Button コントロールを選択し、[プロパティ] ウィンドウで Text プロパティを Full Name に設定します。

  5. 1 つ目のボタン (Update) をダブルクリックしてコード エディタを開き、Button1_Click イベント ハンドラに次のコードを追加します。

    With person1
        .FirstName = Textbox1.Text
        .MiddleName = Textbox2.Text
        .LastName = Textbox3.Text
        .BirthYear = Textbox4.Text
        .Married = CheckBox1.Checked
    End With
    

    入力すると、Persons クラスのメンバを含む一覧が表示されます。クラスは参照として追加されたため、IntelliSense は、その他のクラスの場合と同じように、クラスに関する情報を表示します。

  6. 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
    
  7. F5 キーを押してプロジェクトを実行し、フォームを表示します。

    1. 1 つ目のテキスト ボックスに名を入力します。

    2. 2 つ目のテキスト ボックスにミドル ネームを入力します。

    3. 3 つ目のテキスト ボックスに姓を入力します。

    4. 4 つ目のテキスト ボックスに、4 桁の誕生年 (たとえば 1983) を入力します。

    5. 既婚者の場合はチェック ボックスをオンにします。

  8. [Update] ボタンをクリックしてクラスのプロパティを設定し、[Full Name] ボタンをクリックします。

    3 つのメッセージ ボックスが表示されます。これらのメッセージ ボックスには、フル ネーム、年齢、既婚か独身かが表示されます。

  9. [ファイル] メニューの [すべてを保存] をクリックします。

オーバーロードされたメソッドのテスト

オプションのレッスン「詳細情報 : オーバーロードを使用して同じメソッドの複数バージョンを作成する」を完了した場合、Persons クラスに追加した、オーバーロードされたメソッドをテストすることもできます。レッスンを完了していない場合は、戻って完了することも、次の手順に進むこともできます。

やってみよう

オーバーロードされたメソッドをテストするには

  1. ソリューション エクスプローラで Form1 を選択し、[表示] メニューの [デザイナ] をクリックします。

  2. ツールボックスから、フォームにさらに 2 つの Button コントロールをドラッグします。

  3. 3 つ目の Button コントロールを選択し、[プロパティ] ウィンドウで Text プロパティを With に設定します。

  4. 4 つ目の Button コントロールを選択し、[プロパティ] ウィンドウで Text プロパティを Without に設定します。

  5. 1 つ目のボタン (With) をダブルクリックしてコード エディタを開き、Button3_Click イベント ハンドラに次のコードを入力します。

    MsgBox(person1.FirstName & " " & person1.MiddleInitial(True) & _
                               " " & person1.LastName)
    

    入力すると、Persons クラスのすべてのメンバを含む一覧が表示されます。クラスは参照として追加されたため、IntelliSense は、その他のクラスの場合と同じように、クラスに関する情報を表示します。

  6. Button4_Click イベント ハンドラに次のコードを追加します。

    MsgBox(person1.FirstName & " " & person1.MiddleInitial & _
                               " " & person1.LastName)
    
  7. F5 キーを押してプロジェクトを実行し、フォームを表示します。

    1. 1 つ目のテキスト ボックスに名を入力します。

    2. 2 つ目のテキスト ボックスにミドル ネームを入力します。

    3. 3 つ目のテキスト ボックスに姓を入力します。

    4. 4 つ目のテキスト ボックスに、4 桁の誕生年 (たとえば 1983) を入力します。

    5. 既婚者の場合はチェック ボックスをオンにします。

  8. [Update] ボタンをクリックしてクラスのプロパティを設定し、[With] ボタンをクリックします。

    メッセージ ボックスが表示されます。ここには、ミドル ネームのイニシャルの後にピリオドの付いた名前が表示されます。

  9. [Without] ボタンをクリックします。

    メッセージ ボックスが表示されます。ここには、ミドル ネームのイニシャルの後にピリオドのない名前が表示されます。

  10. [ファイル] メニューの [すべてを保存] をクリックします。

イベント ハンドラのテスト

オプションのレッスンの「詳細情報 : イベントの処理」を完了している場合は、Persons クラスに追加したイベント ハンドラをテストすることもできます。そのレッスンを完了していない場合は、戻って完了するか、次の手順をスキップしてください。

やってみよう

イベント ハンドラをテストするには

  1. ソリューション エクスプローラで Form1 を選択し、[表示] メニューの [コード] をクリックします。

  2. 次のコードに示すように、person1 宣言の前に WithEvents ステートメントを追加します。

    WithEvents person1 As New Persons.Persons
    
  3. 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
    
  4. F5 キーを押してプロジェクトを実行し、フォームを表示します。

    1. 1 つ目のテキスト ボックスに名を入力します。

    2. 2 つ目のテキスト ボックスにミドル ネームを入力します。

    3. 3 つ目のテキスト ボックスに姓を入力します。

    4. 4 つ目のテキスト ボックスに、4 桁の誕生年 (たとえば 1983) を入力します。

    5. 既婚者の場合はチェック ボックスをオンにします。

  5. [Update] ボタンをクリックしてクラスのプロパティを設定し、[Full Name] ボタンをクリックします。

    メッセージ ボックスにフル ネームが表示されます。18 歳を超えている場合は、もう 1 つのメッセージ ボックスに 18 歳をどれだけ超えているかという情報が表示されます。18 歳未満の場合は、メッセージ ボックスに 18 歳になるまでどれだけかかるかという情報が表示されます。その後、もう 1 つのメッセージ ボックスに年齢が表示されます。

  6. [ファイル] メニューの [すべてを保存] をクリックします。

次の手順

このレッスンでは、テスト プロジェクトを作成し、そのテスト プロジェクトを使用してクラスのプロパティ、メソッド、およびイベントをテストする方法について説明しました。次のレッスンでは、継承を使用して、既存のクラスを基にクラスを作成する方法を説明します。

次のレッスン : 「既存クラスからのクラスの構築 : 継承を使用する

参照

処理手順

クラスへのメソッドの追加

詳細情報 : オーバーロードを使用して同じメソッドの複数バージョンを作成する