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?

例 : CheckErrors

以下のコードは、CheckErrors メソッドをオーバーライドします。このメソッドの目的は、プロダクションによって生成されたエラーを検証することです。このケースでは、コードは OnAfterProductionStart が 2 つ目のメッセージを送信した後に Tutorial.ExampleOperation によって生成されるエラーを検証します。このコードは、以下の処理を実行します。

  • GetEventLog を使用して、イベント・ログからすべてのエラーを取得します。%UnitTest.TestProductionOpens in a new tab のクラス・ドキュメントでは、このメソッドおよびその引数について説明されています。ここでは、以下の 3 つの引数をメソッドに提供します。

    • “error” — 取得するイベント・ログ・エントリのタイプを指定します。その他の指定可能な値には、“info”、“infouser”、“trace”、“alert” などがあります。

    • Log — 参照によって渡されます。この引数には、メソッドが返されるときにイベント・ログ情報が含まれます。

    • New — 参照によって渡されます。この引数には、新しいイベント・ログ・エントリの数が含まれます。

  • new のコンテンツを検証することによって、新しい 3 つのエントリがあることを確認します。この例では、それぞれ Tutorial.ExampleOperation、テスト・プロセス、テスト・サービスによって生成された新しい 3 つのエラーがイベント・ログに存在するはずです。

  • エラー・メッセージに “テスト・エラー・ケース” が含まれていることを確認します。“[” は、ObjectScript の包括関係演算子です。


Method CheckErrors() As %Status
{
 Set tSC = $$$OK
 Set s = ..GetEventLog("error","","",.Log,.new)

 Set s1 = $$$AssertEquals(new,3,"Should be 3 new errors(found: "_+$Get(new)_")")

 Set text = $Get(err(1,"Text"))
 Set eText = "Test error case"
 Set s2 = 
     $$$AssertTrue(text[eText,"Should contain '"_eText_"'(found: '"_text_"')")

 if 's1||'s2 set tSC=..Error("Expected error entries don't match")
 Quit tSC
}
Note:

TestControl は、テスト・クラスの IGNOREPRODUCTIONERRORS パラメータの値が 1 の場合にのみ、CheckErrors を呼び出します。

FeedbackOpens in a new tab