Main Content

createTestClassInstance

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

クラス レベルの TestCase インスタンスの作成の拡張

説明

tc = createTestClassInstance(plugin,pluginData) は、クラス レベルの TestCase インスタンスの作成を拡張し、変更された TestCase インスタンスを返します。テスト フレームワークは TestCase インスタンスを使用して、同じテスト クラスに属するテストの実行をカスタマイズします。このフレームワークは、runTestClass メソッドのスコープ内でこのメソッドを評価します。

このメソッドの一般的な実装では、クラス レベルのインスタンスから発生するさまざまなイベントにリスナーを追加します。TestCase クラスは handle クラスから継承するので、createTestClassInstance メソッドの内部から addlistener メソッドを呼び出して、リスナーを追加します。クラスごとに、テスト フレームワークは TestClassSetup 属性または TestClassTeardown 属性をもつすべてのメソッドにインスタンスを渡します。

入力引数

すべて展開する

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

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

属性

Accessprotected

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

すべて展開する

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

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

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

    methods (Access=protected)
        function testCase = createTestClassInstance(plugin,pluginData)
            % Invoke super class method
            testCase = createTestClassInstance@ ...
                matlab.unittest.plugins.TestRunnerPlugin(plugin,pluginData);

            % Get the test class name
            instanceName = pluginData.Name;

            % Add a listener to capture assumption failures
            testCase.addlistener('AssumptionFailed',@(~,evd) ...
                plugin.captureClassLevelAssumptionFailureData(evd,instanceName))
        end
    end

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

バージョン履歴

R2014a で導入