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 中推出