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