Main Content

createTestMethodInstance

クラス: 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 で導入