例 : 設定メソッドおよびティアダウン・メソッドのテストへの追加
この例では、TestEditContact というテスト・メソッドを追加します。このメソッドは、MyPackage.Contact クラスの ContactType プロパティの値が、“Personal” または “Business” のいずれかに制限されていることを確認します。テストを実行する前にデータベースを準備する OnBeforeAllTests メソッドを追加します。また、テストが実行された後でデータベース状態をリストアする OnAfterAllTests メソッドも追加します。
-
スタジオで MyPackage.Tests を開きます (これは、^UnitTestRoot ディレクトリからインポートする必要がある場合があります)。
-
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 インスタンスを削除します。
-
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 を実行し、それによって返される状態値をテストします。
-
Tests を c:\unittests\mytests にエクスポートし、既存の Tests.xml を上書きします。