createTestMethodInstance

Class: matlab.unittest.plugins.TestRunnerPlugin
Package: matlab.unittest.plugins

Extend creation of method-level TestCase instances

Syntax

tc = createTestMethodInstance(plugin,pluginData)

Description

example

tc = createTestMethodInstance(plugin,pluginData) extends the creation of method-level TestCase instances, and returns the modified TestCase instance, tc. The test framework evaluates this method within the scope of the runTest method of the TestRunnerPlugin. A typical implementation of this method is to add listeners to various events originating from the method level instance. Since the TestCase inherits from the handle class, add listeners by calling the addlistener method from within the createTestMethodInstance method. The test framework creates instances for every element of the matlab.unittest.Test array and passes each instance to its corresponding Test methods and to any method with the TestMethodSetup or TestMethodTeardown attribute.

Input Arguments

plugin

Instance of matlab.unittest.plugins.TestRunnerPlugin.

pluginData

Method-level TestCase creation information, specified as an instance of matlab.unittest.plugins.plugindata.TestContentCreationPluginData. The test framework uses this information to introspect into the test content.

Examples

expand all

Add a listener to listen for assumption failures. Use the helper function, captureMethodLevelAssumptionFailureData, to populate the TestMethodAssumptionFailureData property.

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

Introduced in R2014a

Was this topic helpful?