Main Content

matlab.unittest.plugins.QualifyingPlugin クラス

名前空間: matlab.unittest.plugins
スーパークラス: matlab.unittest.plugins.TestRunnerPlugin

システム全体の検定を実行するプラグインのインターフェイス

説明

検定プラグインを使用して、テスト内容とは別個にテスト エラーを生成します。プラグイン レベルでの検定は、すべてのテストで同じ検定を繰り返す必要をなくすという点で有益です。特定のテスト セッションのテスト ランナーにプラグインを追加するだけで、テスト スイートにシステム全体の検定を定期的に適用することができます。

テスト ランナー プラグインの作成者は QualifyingPlugin インターフェイスを使用して、システム全体の検定を実行するプラグインをテスト スイートに実装できます。以下の継承メソッドで検証、仮定、アサーションおよび致命的なアサーションを実行できます。

  • setupTestClass

  • teardownTestClass

  • setupTestMethod

  • teardownTestMethod

以下の継承メソッドでは、仮定、アサーションおよび致命的なアサーションのみを実行できます。

  • setupSharedTestFixture

  • teardownSharedTestFixture

メソッド

assertUsing値が特定の制約を満たすことをアサート
assumeUsing値が指定の制約を満たすことを仮定
fatalAssertUsing値が特定の制約を満たすことを致命的にアサート
verifyUsing値が特定の制約を満たすことを検証

継承メソッド

createSharedTestFixture 共有テスト フィクスチャの作成を拡張する
createTestClassInstance クラス レベルの TestCase インスタンスの作成の拡張
createTestMethodInstance メソッド レベルの TestCase インスタンスの作成の拡張
reportFinalizedResult確定したテスト結果の報告を拡張する
reportFinalizedSuite確定した TestSuite 配列の報告の拡張
runSessionテスト セッションの実行の拡張
runTest 単一の Test 要素の実行の拡張
runTestClass 同一クラスまたは同一関数からの Test 要素の実行の拡張
runTestMethod 単一の Test メソッドの実行を拡張する
runTestSuiteTestSuite 配列の実行の拡張
setupSharedTestFixture共有テスト フィクスチャのセットアップの拡張
setupTestClass テスト クラスのセットアップの拡張
setupTestMethodTest メソッドのセットアップを拡張する
teardownSharedTestFixture共有テスト フィクスチャの破棄の拡張
teardownTestClassテスト クラスの破棄の拡張
teardownTestMethodTest メソッドの破棄を拡張する

コピーのセマンティクス

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

すべて折りたたむ

テスト ファイルによって MATLAB® パスが変更されないようにするプラグインを作成します。テスト ファイル実行後のパスと元のパスが異なる場合、テストは失敗します。

matlab.unittest.plugins.QualifyingPlugin クラスから継承する VerifyNoPathChangePlugin というクラスを作成します。

classdef VerifyNoPathChangePlugin < matlab.unittest.plugins.QualifyingPlugin
    properties (Access=private)
        OriginalPath
    end
    
    methods (Access=protected)
        function setupTestClass(plugin, pluginData)
            plugin.OriginalPath = path;
            setupTestClass@matlab.unittest.plugins.QualifyingPlugin(plugin,pluginData);
        end
        function teardownTestClass(plugin, pluginData)
            import matlab.unittest.constraints.IsEqualTo;
            teardownTestClass@matlab.unittest.plugins.QualifyingPlugin(plugin,pluginData);
            plugin.verifyUsing(pluginData.QualificationContext, ...
                path, IsEqualTo(plugin.OriginalPath), ...
                sprintf('%s modified the path.', pluginData.Name));
        end
    end
end

次のテスト クラスを作成します。このテストはパスを変更した後、元のパスを復元しません。

classdef LeavesModifiedPath < matlab.unittest.TestCase
    methods (Test)
        function test1(~)
            addpath(pwd);
        end
    end
end

この例では、コマンド プロンプトでパスから現在の作業フォルダーを削除します。

rmpath(pwd)

テスト スイートを作成してテスト ランナーにプラグインを追加し、スイートを実行します。テスト実行後のパスが開始時のパスと異なるため、テストは失敗します。

suite = matlab.unittest.TestSuite.fromClass(?LeavesModifiedPath);
runner = matlab.unittest.TestRunner.withTextOutput;
runner.addPlugin(VerifyNoPathChangePlugin);
runner.run(suite);
Running LeavesModifiedPath
.
================================================================================
Verification failed while setting up or tearing down LeavesModifiedPath.
As a result, all LeavesModifiedPath tests failed.

    ----------------
    Test Diagnostic:
    ----------------
    LeavesModifiedPath modified the path.

    ---------------------
    Framework Diagnostic:
    ---------------------
    IsEqualTo failed.
    --> StringComparator failed.
        --> The character arrays are not equal.
    
    Actual char:
        C:\work;C:\Program Files\MATLAB\R2015b\toolbox\matlab\...
   Expected char:
        C:\Program Files\MATLAB\R2015b\toolbox\matlab\...

    ------------------
    Stack Information:
    ------------------
    In C:\work\VerifyNoPathChangePlugin.m (VerifyNoPathChangePlugin.teardownTestClass) at 14
================================================================================

Done LeavesModifiedPath
__________

Failure Summary:

     Name                      Failed  Incomplete  Reason(s)
    =======================================================================
     LeavesModifiedPath/test1    X                 Failed by verification.

バージョン履歴

R2015b で導入