Этот пример показывает, как создать основной пользовательский прибор, который изменяет формат отображения на шестнадцатеричное представление. Пример также показывает, чтобы использовать фиксатор, чтобы протестировать функцию, которая отображает столбец чисел как текст. После того, как тестирование завершается, среда восстанавливает формат отображения к своему предварительному состоянию.
В файле в вашей рабочей папке создайте новый класс, FormatHexFixture
, который наследовался классу matlab.unittest.fixtures.Fixture
. Поскольку мы хотим, чтобы фиксатор восстановил предварительное состояние формата отображения MATLAB®, создайте свойство OriginalFormat
отслеживать исходный формат отображения.
classdef FormatHexFixture < matlab.unittest.fixtures.Fixture properties (Access=private) OriginalFormat end
Подклассы класса Fixture
должны реализовать метод setup
. Используйте этот метод, чтобы записать предварительный формат отображения и установить формат на 'hex'
. Используйте метод teardown
, чтобы восстановить исходный формат отображения. Задайте setup
и методы teardown
в блоке methods
файла FormatHexFixture.m
.
methods function setup(fixture) fixture.OriginalFormat = get(0, 'Format'); set(0, 'Format', 'hex') end function teardown(fixture) set(0, 'Format', fixture.OriginalFormat) end end end
В файле в вашей рабочей папке создайте следующий тестовый класс, 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
Этот тест применяет пользовательский прибор и проверяет, что отображаемый столбец шестнадцатеричного представления как ожидалось.
В командной строке, запущенной тест.
run(SampleTest);
Running SampleTest . Done SampleTest __________
matlab.unittest.fixtures.Fixture