Main Content

matlabtest.parameters.BaselineParameter Class

Namespace: matlabtest.parameters

Baseline parameter

Since R2024b

Description

The matlabtest.parameters.BaselineParameter class represents a specific type of parameter used for baseline testing. To create a baseline test, set a parameterization property in your test class to a BaselineParameter object and then specify that property as an input to a method that tests against the baseline data. For more information, see Create Baseline Tests for MATLAB Code.

A BaselineParameter object contains parameterization information for the test. Similar to creating parameters from a cell array or structure assigned to a parameterization property, the testing framework automatically transforms a BaselineParameter object into the parameter required to run the baseline test. For more information about test parameterization, see Use Parameters in Class-Based Tests.

The matlabtest.parameters.BaselineParameter class is a handle class.

Creation

To create a BaselineParameter object, use the matlabtest.parameters.matfileBaseline function.

Examples

collapse all

Write a baseline test by using a baseline parameter in a test class.

In your current folder, create a MAT file named testdata.mat that contains the expected output of the magic function when called with 5 as its input.

M = magic(5);
save("testdata.mat","M")

In a file named ExampleTest.m in your current folder, create the ExampleTest test class that compares a value against the baseline data in testdata.mat. The Test method in the class defines a baseline test because it relies on a baseline parameter created using the matlabtest.parameters.matfileBaseline function.

classdef ExampleTest < matlab.unittest.TestCase
    properties (TestParameter)        
        baseline = matlabtest.parameters.matfileBaseline("testdata.mat")
    end

    methods (Test)
        function baselineTest(testCase,baseline)
            actual = magic(5);
            testCase.verifyEqualsBaseline(actual,baseline)
        end
    end
end

Create a test suite from the ExampleTest class, and display the name of the baseline test.

suite = testsuite("ExampleTest");
disp({suite.Name}')
    {'ExampleTest/baselineTest(baseline=testdata.mat(data))'}

Display the parameterization data required to run the baseline test by returning the value of the Parameterization property of the corresponding matlab.unittest.Test element. The testing framework transformed the BaselineParameter object into the test parameter required to run the baseline test. Note that the value of the test parameter is a matlabtest.baselines.MATFileBaseline object, which the framework passes to the Test method when running the baseline test.

disp(suite(1).Parameterization)
  TestParameter with properties:

    Property: 'baseline'
        Name: 'testdata.mat(data)'
       Value: [1×1 matlabtest.baselines.MATFileBaseline]

Run the baseline test. The test passes because the actual value is equal to the baseline data in testdata.mat.

result = runtests("ExampleTest");
Running ExampleTest
.
Done ExampleTest
__________

Version History

Introduced in R2024b