Create Basic Custom Fixture
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 the
matlab.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 the
setup method. Use this method to record the pretest
display format, and set the format to 'hex'. Use the
teardown 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.
run(SampleTest);
Running SampleTest . Done SampleTest __________
See Also
matlab.unittest.fixtures.Fixture