Main Content

createTestClassInstance

クラス: matlab.unittest.plugins.TestRunnerPlugin
パッケージ: matlab.unittest.plugins

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

説明

tc = createTestClassInstance(plugin,pluginData) は、クラス レベルの TestCase インスタンスの作成を拡張し、変更された TestCase インスタンス、tc を返します。テスト フレームワークは TestCase インスタンスを使用して、同じテスト クラスに属するテストの実行をカスタマイズします。このフレームワークは、TestRunnerPluginrunTestClass メソッドのスコープ内でこのメソッドを評価します。このメソッドの一般的な実装では、クラス レベルのインスタンスから発生するさまざまなイベントにリスナーを追加します。TestCasehandle クラスから継承するので、createTestClassInstance メソッドの内部から addlistener メソッドを呼び出して、リスナーを追加します。クラスごとに、テスト フレームワークは TestClassSetup 属性または TestClassTeardown 属性をもつすべてのメソッドにインスタンスを渡します。

入力引数

plugin

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

pluginData

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

すべて展開する

テストの実行を拡張し、クラス レベルの仮定エラーの数をカウントします。

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 で導入