Main Content

createSharedTestFixture

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

共有テスト フィクスチャ インスタンスの作成の拡張

説明

f = createSharedTestFixture(plugin,pluginData) は、共有テスト フィクスチャの作成を拡張し、変更された Fixture インスタンス、f を返します。テスト フレームワークは、フィクスチャ インスタンスを使用して、共有フィクスチャを使用するテストの実行をカスタマイズします。このフレームワークは、セットアップする必要がある共有テスト フィクスチャごとに、TestRunnerPluginrunTestSuite メソッドのスコープ内でこのメソッドを評価します。このメソッドの一般的な実装では、共有テスト フィクスチャ インスタンスから発生するさまざまなイベントにリスナーを追加します。Fixturehandle クラスから継承するので、createSharedTestFixture メソッドの内部から addlistener メソッドを呼び出して、リスナーを追加します。

入力引数

plugin

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

pluginData

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

すべて展開する

テストの実行を拡張して、共有テスト フィクスチャのアサーション エラー の数をカウントします。

classdef ExamplePlugin < matlab.unittest.plugins.TestRunnerPlugin
    
    properties (SetAccess = private)
        FixtureAssertionFailureData = {};
    end
    
    methods (Access = protected)
        function fixture = createSharedTestFixture(plugin, pluginData)
            % Invoke the super class method
            fixture = createSharedTestFixture@...
                matlab.unittest.plugins.TestRunnerPlugin(plugin, pluginData);
            
            % Get the fixture name
            fixtureName = pluginData.Name;
            
            % Add a listener to fixture assertion failures
            % and capture the qualification failure information
            fixture.addlistener('AssertionFailed', @(~,evd) ...
                plugin.captureFixtureAssertionFailureData(evd, fixtureName))
        end
    end
    
    methods (Access = private)
        function captureFixtureAssertionFailureData(plugin, eventData, fixtureName)
            plugin.FixtureAssertionFailureData{end+1} = struct(...
                'FixtureName', fixtureName, ...
                'ActualValue', eventData.ActualValue, ...
                'Constraint' , eventData.Constraint, ...
                'Stack'      , eventData.Stack);
        end
    end
end

バージョン履歴

R2014a で導入