createTestMethodInstance

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

Extend creation of method-level TestCase instances

Description

example

tc = createTestMethodInstance(plugin,pluginData) extends the creation of method-level TestCase instances, and returns the modified TestCase instance, tc. The testing framework evaluates this method within the scope of the runTest method of 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 testing 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

Plugin object, specified as an instance of the matlab.unittest.plugins.TestRunnerPlugin class.

pluginData

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

Examples

expand all

Add a listener to listen for assumption failures. Use the helper method, 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