Main Content

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

createTestMethodInstance

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

扩展方法级别 TestCase 实例的创建

说明

示例

tc = createTestMethodInstance(plugin,pluginData) 扩展方法级别 TestCase 实例的创建,并返回修改后的 TestCase 实例 tc。测试框架在 TestRunnerPluginrunTest 方法的作用域内计算此方法。此方法的典型实现是将侦听程序添加到源自方法级别实例的各种事件。因为 TestCase 继承自 handle 类,所以通过从 createTestMethodInstance 方法内调用 addlistener 方法来添加侦听程序。测试框架为 matlab.unittest.Test 数组的每个元素创建实例并将每个实例传递到其相应的 Test 方法及任何带有 TestMethodSetupTestMethodTeardown 属性的方法。

输入参数

plugin

插件对象,指定为 matlab.unittest.plugins.TestRunnerPlugin 类的实例。

pluginData

方法级别 TestCase 创建信息,指定为 matlab.unittest.plugins.plugindata.TestContentCreationPluginData 类的实例。测试框架使用此信息来描述该插件的测试内容。

示例

全部展开

添加侦听程序以侦听假设失败。使用辅助方法 captureMethodLevelAssumptionFailureData 填充 TestMethodAssumptionFailureData 属性。

classdef ExamplePlugin < matlab.unittest.plugins.TestRunnerPlugin

    properties (SetAccess = private)
        TestMethodAssumptionFailureData = {};
    end

    methods (Access = protected)
        function testCase = createTestMethodInstance(plugin, pluginData)
            testCase = createTestMethodInstance@...
                matlab.unittest.plugins.TestRunnerPlugin(plugin, pluginData);

            instanceName = pluginData.Name;
            testCase.addlistener('AssumptionFailed', @(~,evd) ...
                plugin.captureMethodLevelAssumptionFailureData(evd,instanceName))
        end
    end

    methods (Access = private)
        function captureMethodLevelAssumptionFailureData(...
                plugin, eventData, instanceName)
            plugin.TestMethodAssumptionFailureData{end+1} = struct(...
                'InstanceName', instanceName, ...
                'ActualValue'     , eventData.ActualValue, ...
                'Constraint'      , eventData.Constraint, ...
                'Stack'           , eventData.Stack);
        end
    end

end

版本历史记录

在 R2014a 中推出