Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

matlab.unittest.qualifications.Assumable クラス

パッケージ: matlab.unittest.qualifications

テストの内容をフィルター処理する検定

説明

Assumable クラスは、テストの内容をフィルター処理する検定を提供します。エラーの発生時に実行されるアクションを除いて、Assumable クラスは他の matlab.unittest 検定と同様に機能します。

仮定エラーが発生すると、Assumable クラスは AssumptionFailedException をスローしてテスト フレームワークにエラーを通知します。テスト フレームワークは、ここでテストの内容をフィルター処理済みとマークし、テストを続行します。仮定は多くの場合、特定の前提条件が満たされる場合にのみテストが実行されるようにするために使用されます。ただし、前提条件を満たさずにテストを実行してもテスト エラーは生成されません。テスト内容が例外セーフ であることを確認してください。エラー条件によりテスト エラーを発生させる場合は、仮定の代わりにアサーションまたは検証を使用してください。

TestCase メソッド定義で指定された属性は、どのテストをフィルター処理するかを決定します。テスト フレームワークで TestCase メソッド内の仮定エラーが発生した場合、次のように動作します。

  • Test 属性を使用して TestCase メソッドを定義する場合、フレームワークはメソッド全体をフィルター済みとマークし、後続のテスト メソッドを実行します。

  • TestMethodSetup または TestMethodTeardown 属性を使用して TestCase メソッドを定義する場合、テスト フレームワークはそのインスタンスで実行するメソッドをフィルター済みとマークします。

  • TestClassSetup または TestClassTeardown 属性を使用して TestCase メソッドを定義する場合、テスト フレームワークは TestCase クラス全体をフィルター処理します。

仮定を使用してテストの内容をフィルター処理しても、テスト エラーは生成されません。このため、デッド テスト コードになる可能性があります。これを回避するには、フィルター処理されたテストを監視します。

メソッド

assumeClass指定した値の正確なクラスを仮定する
assumeEmpty値が空であると仮定する
assumeEqual値が指定値と等しいと仮定する
assumeError関数が指定された例外をスローすると仮定する
assumeFail無条件の仮定エラーの生成
assumeFalse値が false であると仮定する
assumeGreaterThan値が指定値より大きいと仮定する
assumeGreaterThanOrEqual値が指定値以上であると仮定する
assumeInstanceOf値が指定したタイプのオブジェクトであると仮定する
assumeLength値が指定された長さであると仮定する
assumeLessThan値が指定値より小さいと仮定する
assumeLessThanOrEqual値が指定値以下であると仮定する
assumeMatches文字列が指定された正規表現と一致すると仮定する
assumeNotEmpty値が空でないと仮定する
assumeNotEqual値が指定値と等しくないと仮定する
assumeNotSameHandle値が指定されたインスタンスに対するハンドルでないと仮定する
assumeNumElements値が指定された要素数をもつと仮定する
assumeReturnsTrue評価時に関数が true を返すと仮定する
assumeSameHandle2 つの値が同じインスタンスに対するハンドルであると仮定する
assumeSize値が指定されたサイズであると仮定する
assumeSubstring文字列に指定文字列が含まれていると仮定する
assumeThat値が指定された制約を満たしていると仮定する
assumeTrue値が true であると仮定する
assumeWarning関数が指定された警告を表示すると仮定する
assumeWarningFree関数が警告を表示しないと仮定する

イベント

AssumptionFailed

仮定の失敗時にトリガーされます。QualificationEventData オブジェクトがリスナー コールバック関数に渡されます。‎

AssumptionPassed

仮定の成功時にトリガーされます。QualificationEventData オブジェクトがリスナー コールバック関数に渡されます。

コピーのセマンティクス

ハンドル。コピー操作に対するハンドル クラスの影響については、オブジェクトのコピーを参照してください。

すべて折りたたむ

想定は、特定の前提条件が満たされている場合およびそのような事象によりテスト エラーが生成されない場合にのみテストが実行されることを保証します。想定のエラーが発生すると、テストはフィルター処理済みとマークされます。

IsSupportedTest テスト ケースを作成します。この例の後続の手順である次の IsSupportedTest テスト ケースを参照してください。これはファイル内の特定の関数に焦点を当てています。

 IsSupportedTest クラス定義ファイル

この例の MATLAB® コマンドを実行するには、ファイル IsSupportedTest.m を MATLAB パス上のフォルダーに追加します。

プラットフォームを検証するテストを記述します。このテスト ケースのすべてのテストは、UNIX® プラットフォームでのみ実行しなければなりません。関数 TestPlatform は、assumeFalse メソッドを使用して、MATLAB が Windows® プラットフォーム上で実行されているかどうかをテストします。そうであれば、テストは失敗します。

function TestPlatform(testcase)
    testcase.assumeFalse(ispc,...
        'Do not run any of these tests on Windows.')
end

TestPlatformTestClassSetup テストにします。TestPlatform テストを前提条件にするには、それを methods (TestClassSetup) ブロックの中に追加します。

テスト ケースを実行します。テスト ケース オブジェクトを作成して、テストを Windows プラットフォーム上で実行します。

tc = IsSupportedTest;
res = tc.run;
Running IsSupportedTest

================================================================================
All tests in IsSupportedTest were filtered.
    Test Diagnostic: Do not run any of these tests on Windows.
    Details
================================================================================

Done IsSupportedTest
__________

Failure Summary:

     Name                   Failed  Incomplete  Reason(s)
    ====================================================================
     IsSupportedTest/test1              X       Filtered by assumption.

テストはフィルター処理され、実行されませんでした (Incomplete とマークされます)。

詳細は、[詳細] リンクをクリックしてください。

================================================================================
An assumption was not met while setting up or tearing down IsSupportedTest.
As a result, all IsSupportedTest tests were filtered.

    ----------------
    Test Diagnostic:
    ----------------
    Do not run any of these tests on Windows.

    ---------------------
    Framework Diagnostic:
    ---------------------
    assumeFalse failed.
    --> The value must evaluate to "false".
    
    Actual Value:
             1

    ------------------
    Stack Information:
    ------------------
    In C:\work\IsSupportedTest.m (IsSupportedTest.TestPlatform) at 4
================================================================================

Stack Information の下の IsSupportedTest.TestPlatform へのリンクをクリックすると、失敗した assumeFalse メソッドについての説明を確認できます。

詳細

すべて展開する

R2013a で導入