Skip to main content

This is documentation for Caché & Ensemble. See the InterSystems IRIS version of this content.Opens in a new tab

For information on migrating to InterSystems IRISOpens in a new tab, see Why Migrate to InterSystems IRIS?

例 : 設定メソッドおよびティアダウン・メソッドのテストへの追加

この例では、TestEditContact というテスト・メソッドを追加します。このメソッドは、MyPackage.Contact クラスの ContactType プロパティの値が、“Personal” または “Business” のいずれかに制限されていることを確認します。テストを実行する前にデータベースを準備する OnBeforeAllTests メソッドを追加します。また、テストが実行された後でデータベース状態をリストアする OnAfterAllTests メソッドも追加します。

  1. スタジオで MyPackage.Tests を開きます (これは、^UnitTestRoot ディレクトリからインポートする必要がある場合があります)。

  2. OnBeforeAllTests メソッドと OnAfterAllTests メソッドを追加します。

    %UnitTest.TestCaseOpens in a new tab からメソッドをオーバーライドするため、メニュー・バーの [クラス]→[リファクタ]→[オーバーライド] をクリックし、継承対象のメソッドのリストからメソッド名をクリックします (2 つ目の名前は Ctrl キーを押しながらクリックします)。これにより、既存の実装がクラス定義に追加されます。

    これらのメソッドを次のように変更します。

    
    Method OnBeforeAllTests() As %Status
    {
       Do ##class(MyPackage.Contact).Populate(1)
       Quit $$$OK
    }
    
    
    Method OnAfterAllTests() As %Status
    {
       Do ##class(MyPackage.Contact).%KillExtent()
       Quit $$$OK
    }
    

    OnBeforeAllTests メソッドは、データベースに 1 つの Contact インスタンスを追加します。OnAfterAllTests メソッドは、データベースからすべての Contact インスタンスを削除します。

  3. TestEditContact テスト・メソッドを MyPackage.Tests に追加します。

    
    Method TestEditContact()
    {
       set contact=##class(MyPackage.Contact).%OpenId(1)
       set contact.Name="Rockwell,Norman"
       set contact.ContactType="Friend"
       Do $$$AssertStatusNotOK(contact.%Save(),"ContactType = Friend")
       Set contact.ContactType="Personal"
       Do $$$AssertStatusOK(contact.%Save(),"ContactType = Personal")
    }
    

    このメソッドは、ContactType に無効な値を割り当てた後と ContactType に有効な値を割り当てた後の 2 つの条件下で、Contact に対して %Save を実行し、それによって返される状態値をテストします。

  4. Testsc:\unittests\mytests にエクスポートし、既存の Tests.xml を上書きします。

FeedbackOpens in a new tab