matlab.unittest.qualifications.FatalAssertable クラス
名前空間: matlab.unittest.qualifications
テストの実行を中断する検定
説明
FatalAssertable クラスは、テストの実行を中断する検定を提供します。エラーの発生時に実行されるアクションを除いて、FatalAssertable クラスは matlab.unittest.qualifications 名前空間にある他の検定クラスと同様に機能します。
致命的なアサーション エラーが発生すると、FatalAssertable クラスは FatalAssertionFailedException オブジェクトをスローしてテスト フレームワークにエラーを通知します。フレームワークは、エラーの診断情報を表示して、テスト セッションを中断します。この動作は、エラーがあまりに根本的なものであり、テストを続行する意義がない場合に役立ちます。また、フィクスチャの破棄で致命的なアサーションを使用すると、環境の状態が正しく回復されることを保証できます。フィクスチャの破棄を例外安全にできる場合や、エラーの発生後に状態を回復できる場合は、代わりにアサーションを使用します。
致命的なアサーションでは、基本的なテストのエラーに起因する誤ったテスト エラーを回避できます。前のテストで状態を回復できなかった場合にも、誤ったテスト エラーを回避できます。フレームワークでフィクスチャの破棄を適切に行うことができない場合、状態を手動でリセットする必要があります。たとえば、MATLAB® の再起動が必要となる場合があります。
matlab.unittest.qualifications.FatalAssertable クラスは handle クラスです。
メソッド
FatalAssertable クラスは、値をテストしてエラーに対応するための複数の検定メソッドを提供します。たとえば、fatalAssertEmpty は値が空であることをテストし、fatalAssertTrue は実績値が true であることをテストします。
メモ
FatalAssertable クラスのメソッドは、Verifiable クラスのメソッドに対応します。検定タイプのみが異なります。FatalAssertable メソッドは、Verifiable メソッドと同じ方法で呼び出しが可能です。
fatalAssertEqual |
入力引数
名前と値の引数
|
fatalAssertFail |
無条件の致命的なアサーション エラーが生成されます。 入力引数
|
fatalAssertFalse |
入力引数
|
fatalAssertNotEqual |
入力引数
|
fatalAssertNotSameHandle |
入力引数
|
fatalAssertReturnsTrue |
入力引数
|
fatalAssertSameHandle |
入力引数
|
fatalAssertThat |
入力引数
|
fatalAssertTrue |
入力引数
|
fatalAssertError |
入力引数
出力引数
|
fatalAssertWarning |
入力引数
出力引数
|
fatalAssertWarningFree |
入力引数
出力引数
|
fatalAssertGreaterThan |
入力引数
|
fatalAssertGreaterThanOrEqual |
入力引数
|
fatalAssertLessThan |
入力引数
|
fatalAssertLessThanOrEqual |
入力引数
|
fatalAssertEmpty |
入力引数
|
fatalAssertLength |
入力引数
|
fatalAssertNotEmpty |
入力引数
|
fatalAssertNumElements |
入力引数
|
fatalAssertSize |
入力引数
|
fatalAssertClass |
入力引数
|
fatalAssertInstanceOf |
入力引数
|
fatalAssertMatches |
入力引数
|
fatalAssertSubstring |
入力引数
|
fatalAssertEqualsBaseline (MATLAB Test™ が必要) |
入力引数
名前と値の引数
|
イベント
| イベント名 | トリガー | イベント データ | イベントの属性 |
|---|---|---|---|
FatalAssertionFailed | 致命的なアサーションの失敗時にトリガーされます。QualificationEventData オブジェクトがリスナー コールバック関数に渡されます。 | matlab.unittest.qualifications.QualificationEventData |
|
FatalAssertionPassed | 致命的なアサーションの成功時にトリガーされます。QualificationEventData オブジェクトがリスナー コールバック関数に渡されます。 | matlab.unittest.qualifications.QualificationEventData |
|
例
オペレーティング システム環境変数の値を設定する関数をテストします。テストの後に環境変数を元の値にリセットできない場合、致命的なアサーション エラーを使用してテスト セッションを中止します。
現在のフォルダー内のファイルに、関数 setUserName を作成します。この関数は setenv への呼び出しを使用して、'UserName' 環境変数を設定します。
function setUserName(name) setenv('UserName',name) end
関数 setUserName をテストするには、現在のフォルダーに SetUserNameTest という名前のテスト クラスを作成します。テストに必要なクラス メンバーを定義します。
OriginalUserNameプロパティ — このプロパティを使用して、テスト後に環境変数をリセットします。testUpdateTestメソッド — 環境変数の元の値を格納し、テスト対象の関数を呼び出して、関数が環境変数を期待された値に設定することを検証します。状態はテスト中に変化するため、テストが最後まで実行されたら状態を復元するように、addTeardownへの呼び出しを含めます。resetUserName補助メソッド — 関数setUserNameを呼び出して、環境変数をリセットします。操作が正常に完了しない場合、致命的なアサーション エラーを使用してテスト セッションを中止します。
classdef SetUserNameTest < matlab.unittest.TestCase properties (SetAccess = private) OriginalUserName end methods (Test) function testUpdate(testCase) testCase.OriginalUserName = getenv('UserName'); setUserName('David') testCase.addTeardown(@() testCase.resetUserName) testCase.verifyEqual(getenv('UserName'),'David') end end methods (Access = private) function resetUserName(testCase) setUserName(testCase.OriginalUserName) testCase.fatalAssertEqual(getenv('UserName'),testCase.OriginalUserName) end end end
SetUserNameTest クラスを実行します。テストはパスします。
runtests("SetUserNameTest")Running SetUserNameTest . Done SetUserNameTest __________
ans =
TestResult with properties:
Name: 'SetUserNameTest/testUpdate'
Passed: 1
Failed: 0
Incomplete: 0
Duration: 0.0226
Details: [1×1 struct]
Totals:
1 Passed, 0 Failed, 0 Incomplete.
0.022649 seconds testing time.
詳細
テスト フレームワークでは、テスト ランナーの構成に応じて検定にパスしたときか失敗したときに診断を表示する場合があります。既定では、フレームワークは検定に失敗したときにのみ診断を表示します。この既定の動作はテスト ランナーをカスタマイズしてオーバーライドできます。たとえば、失敗したイベントとパスしたイベントの両方の診断を表示するには、DiagnosticsOutputPlugin インスタンスを使用できます。
診断メッセージをテスト ケースに追加するには、いずれかの検定メソッドでオプションの diagnostic 引数を使用します。diagnostic を string 配列、文字配列、関数ハンドル、または matlab.automation.diagnostics.Diagnostic オブジェクトの配列として指定できます。
テストの内容により、その環境の状態が変更されることがあります。例外が存在している場合でも環境を元の状態に復元できる場合、内容は "例外安全" です。例外安全により、例外をスローしたテストが環境を破損して後続のテストに影響を与えないことが確保されます。例外安全を実現するには、addTeardown メソッドを使用してすべての破棄アクションを実行します。元の状態変化の直前または直後に、例外をスローする可能性のある他のコードを挟むことなく、addTeardown を呼び出します。
たとえば、以下のコードは例外安全ではありません。テストが失敗した場合、Figure はテスト フレームワークで閉じられません。この Figure が存在すると、後続のテストが失敗する可能性があります。
% Not exception safe
f = figure;
testCase.fatalAssertEqual(actual,expected)
close(f)これに対して、以下のコードは、テスト結果に関係なくフレームワークで Figure が閉じられるため、例外安全です。
% Exception safe
f = figure;
testCase.addTeardown(@close,f)
testCase.fatalAssertEqual(actual,expected)addTeardown を使用してフィクスチャを破棄すれば必ずコードが例外安全になるわけではありません。以下のコードは、テストの後に addTeardown の呼び出しが行われているため、例外安全ではありません。テストが失敗した場合、Figure はフレームワークで閉じられません。
% Not exception safe
f = figure;
testCase.fatalAssertEqual(actual,expected)
testCase.addTeardown(@close,f)
バージョン履歴
R2013a で導入MATLAB Test ライセンスをお持ちの場合は、fatalAssertEqualsBaseline メソッドを使用して、値がベースライン データと等しいかどうかをテストできます。
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)