Main Content

本页翻译不是最新的。点击此处可查看最新英文版本。

createTestClassInstance

类: matlab.unittest.plugins.TestRunnerPlugin
包: matlab.unittest.plugins

扩展类级别 TestCase 实例的创建

说明

示例

tc = createTestClassInstance(plugin,pluginData) 扩展类级别 TestCase 实例的创建,并返回修改后的 TestCase 实例 tc。测试框架使用 TestCase 实例自定义属于同一测试类的运行测试。框架在 TestRunnerPluginrunTestClass 方法的作用域内计算此方法。此方法的典型实现是向源自类级别实例的各种事件添加侦听程序。因为 TestCase 继承自 handle 类,所以通过从 createTestClassInstance 方法内调用 addlistener 方法来添加侦听程序。对于每个类,测试框架向任何具有 TestClassSetupTestClassTeardown 属性的方法传递该实例。

输入参数

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