Main Content

createSharedTestFixture

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

共有テスト フィクスチャの作成を拡張する

説明

f = createSharedTestFixture(plugin,pluginData) は、共有テスト フィクスチャの作成を拡張し、変更された Fixture インスタンスを返します。テスト フレームワークはフィクスチャを使用して、共有フィクスチャを使用するテストの実行をカスタマイズします。このフレームワークは、セットアップする必要がある共有テスト フィクスチャごとに、runTestSuite メソッドのスコープ内でこのメソッドを評価します。

このメソッドの一般的な実装では、共有テスト フィクスチャから発生するさまざまなイベントにリスナーを追加します。Fixture クラスは handle クラスから継承するので、createSharedTestFixture メソッドの内部から addlistener メソッドを呼び出して、リスナーを追加します。

入力引数

すべて展開する

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

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

属性

Accessprotected

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

すべて展開する

プラグインを作成して createSharedTestFixture メソッドをオーバーライドし、共有テスト フィクスチャのアサーション エラーの数をカウントします。

アサーション エラーをリッスンするリスナーを追加します。補助メソッド captureFixtureAssertionFailureData を使用して、FixtureAssertionFailureData プロパティに値を取り込みます。

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