Main Content

verify

論理式を評価し、結果を自動的に記録

説明

verify(expression) は、スカラーの論理式 expressiontrue または false として評価します。

verify(expression,errorMessage) は、失敗した verify ステートメントについて、指定されたエラー メッセージを返します。テスト マネージャーでテストを実行している場合、シミュレーション ログにエラー メッセージが表示されます。テスト マネージャーの外部でテストを実行している場合、診断ビューアーにメッセージが表示されます。errorMessage は文字配列であり、sprintf を使用して書式を設定できます。ただし、Stateflow® チャートの string または文字配列では、sprintf による書式設定は使用できません。

メモ

リアルタイム環境では、verify ステートメントの失敗時に警告は生成されません。ただし、テスト マネージャーでリアルタイム テスト ケースを実行している場合は、テスト ケースの結果の [verify ステートメント] セクションに失敗が表示されます。getVerifyRuns を使用して verify の実行に関する情報にアクセスすることもできます。

verify(expression,identifier,errorMessage) は、identifier をテスト結果のラベルとして使用します。テスト マネージャーでは、信号ラベルとして identifier が使用されます。テスト マネージャーの外部でテストを実行している場合は、シミュレーション データ インスペクターや診断ビューアー (失敗時) にラベルが表示されます。identifier は、コロンで区切られた少なくとも 2 つの MATLAB® 識別子をもつ文字配列です。

すべて展開する

verify(x > y && z > 10)

次の verify ステートメントでは、失敗した場合に xy、および z の値をリストしたエラー メッセージが返されます。

verify(x > y && z > 10,'x, y, and z are %d,%d,%d',x,y,z)

次の verify ステートメントでは、結果の前に TestReq1:bothGreater というラベルが付けられ、テストが失敗した場合はエラー メッセージが続きます。

verify(x > y && z > 10,'TestReq1:bothGreater',...
   'x, y, and z are %d,%d,%d',x,y,z)

次の Stateflow チャートでは、Scenario1 ステートの 2 番目のステップでターゲットが 60 に等しいことを検証しています。

Stateflow chart with verify statement

ヒント

  • verify ステートメントは、Test Sequence ブロック、Test Assessment ブロック、および Stateflow チャートで使用できます。チャートを使用するには Stateflow のライセンスが必要です。チャートでも、Test Sequence ブロックと同じ場所および実行モードで、同じコード生成ターゲットに対して verify ステートメントがサポートされます。

  • verify ステートメントは以下では使用できません。

    • 連続時間更新を使用する Test Sequence ブロック。Test Sequence ブロックのデータは、ソルバーのステップ時間などの要因に依存することがあります。連続時間更新の場合、ブロックのデータと verify ステートメントが更新されるタイミングに差が生じ、verify ステートメントの結果が予期しない結果になる可能性があります。モデルで連続時間を使用している場合に Test Sequence ブロックまたは Test Assessment ブロックで verify ステートメントを使用する際は、離散ブロックのサンプル時間を明示的に設定することを検討してください。

    • Moore チャート、Mealy チャート、離散イベント チャート、または連続チャート

    • C をアクション言語として使用するチャート

    • チャート内のバインド アクション

    • チャート内の遷移アクションまたは条件アクション

    • チャート内の MATLAB 関数、グラフィカル関数、または真理値表

    • MATLAB Function ブロックまたは Truth Table ブロック

    • ラピッド アクセラレータ モードのシミュレーション

    • Simulink® Real-Time™ および HDL Verifier™ 以外のコード生成ターゲット

    • スタンドアロンの Stateflow チャート

  • 並列テスト実行を使用してテストを実行する場合、verify の結果にテスト マネージャーで [モデル内で強調表示] ボタンを使用することはできません。

  • verify ステートメントは出力を生成しないため、When 構造の when の直後に verify を条件として使用することはできません。ただし、When 構造ステップのアクションとしては verify ステートメントを使用できます。When 構造を使用したモデルの評価を参照してください。

  • verify ステートメントで浮動小数点データを比較するときは、浮動小数点数に関する精度の制限を考慮してください。浮動小数点データを使用する必要がある場合は、検証の許容誤差を定義します。たとえば、verify(x == 5) の代わりに、0.001 の許容誤差内で x を検証します。

    verify(abs(x-5) < 0.001)
    詳細については、浮動小数点数を参照してください。

バージョン履歴

R2016a で導入