Create Basic Custom Fixture - MATLAB & Simulink (original) (raw)

Main Content

This example shows how to create a basic custom fixture that changes the display format to hexadecimal representation. The example also shows how to use the fixture to test a function that displays a column of numbers as text. After the testing completes, the framework restores the display format to its pretest state.

Create FormatHexFixture Class Definition

In a file in your working folder, create a new class,FormatHexFixture that inherits from thematlab.unittest.fixtures.Fixture class. Since we want the fixture to restore the pretest state of the MATLABĀ® display format, create an OriginalFormat property to keep track of the original display format.

classdef FormatHexFixture < matlab.unittest.fixtures.Fixture properties (Access = private) OriginalFormat end end

Implement setup and teardown Methods

Subclasses of the Fixture class must implement thesetup method. Use this method to record the pretest display format, and set the format to 'hex'. Use theteardown method to restore the original display format. Define the setup and teardown methods in the methods block of the FormatHexFixture class.

classdef FormatHexFixture < matlab.unittest.fixtures.Fixture properties (Access = private) OriginalFormat end methods function setup(fixture) fixture.OriginalFormat = format; format hex end function teardown(fixture) format(fixture.OriginalFormat) end end end

Apply Custom Fixture

In a file in your working folder, create the following test class,SampleTest.m.

classdef SampleTest < matlab.unittest.TestCase methods (Test) function test1(testCase) testCase.applyFixture(FormatHexFixture) actStr = getColumnForDisplay([1;2;3],'Small Integers'); expStr = ['Small Integers ' '3ff0000000000000' '4000000000000000' '4008000000000000']; testCase.verifyEqual(actStr,expStr) end end end

function str = getColumnForDisplay(values,title) elements = cell(numel(values)+1,1); elements{1} = title; for idx = 1:numel(values) elements{idx+1} = displayNumber(values(idx)); end str = char(elements); end

function str = displayNumber(n) str = strtrim(evalc('disp(n);')); end

This test applies the custom fixture and verifies that the displayed column of hexadecimal representation is as expected.

At the command prompt, run the test.

Running SampleTest . Done SampleTest


See Also

matlab.unittest.fixtures.Fixture

Topics