メインコンテンツ

createTestMethodInstance

R2026b

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

メソッド レベルの TestCase インスタンスの作成の拡張

説明

tc = createTestMethodInstance(plugin,pluginData) は、メソッド レベルの TestCase インスタンスの作成を拡張し、変更された TestCase インスタンスを返します。このテスト フレームワークは、runTest メソッドのスコープ内でこのメソッドを評価します。

このメソッドの一般的な実装では、メソッド レベルのインスタンスから発生するさまざまなイベントにリスナーを追加します。TestCase クラスは handle クラスから継承するので、createTestMethodInstance メソッドの内部から addlistener メソッドを呼び出して、リスナーを追加します。テスト フレームワークは matlab.unittest.Test 配列のすべての要素のインスタンスを作成し、各インスタンスに対応する Test メソッドと TestMethodSetup 属性または TestMethodTeardown 属性をもつメソッドに渡します。

例

入力引数

すべて展開する

プラグイン。matlab.unittest.plugins.TestRunnerPlugin オブジェクトとして指定します。

メソッドレベルの TestCase の作成情報。matlab.unittest.plugins.plugindata.TestContentCreationPluginData オブジェクトとして指定します。テスト フレームワークはこの情報を使用してプラグインにテスト内容を記述します。

属性

Accessprotected

メソッドの属性の詳細については、メソッドの属性を参照してください。

例

すべて展開する

プラグインを作成して createTestMethodInstance メソッドをオーバーライドし、メソッドレベルの仮定エラーの数をカウントします。

仮定エラーをリッスンするリスナーを追加します。補助メソッド captureMethodLevelAssumptionFailureData を使用して、TestMethodAssumptionFailureData プロパティに値を取り込みます。

classdef ExamplePlugin < matlab.unittest.plugins.TestRunnerPlugin
    properties (SetAccess=private)
        TestMethodAssumptionFailureData = {};
    end

    methods (Access=protected)
        function testCase = createTestMethodInstance(plugin,pluginData)
            testCase = createTestMethodInstance@ ...
                matlab.unittest.plugins.TestRunnerPlugin(plugin,pluginData);

            instanceName = pluginData.Name;
            testCase.addlistener('AssumptionFailed',@(~,evd) ...
                plugin.captureMethodLevelAssumptionFailureData(evd,instanceName))
        end
    end

    methods (Access=private)
        function captureMethodLevelAssumptionFailureData( ...
                plugin,eventData,instanceName)
            plugin.TestMethodAssumptionFailureData{end+1} = struct( ...
                'InstanceName',instanceName, ...
                'ActualValue' ,eventData.ActualValue, ...
                'Constraint'  ,eventData.Constraint, ...
                'Stack'       ,eventData.Stack);
        end
    end
end

バージョン履歴

R2014a で導入