Создание основного пользовательского прибора

Этот пример показывает, как создать основной пользовательский прибор, который изменяет формат отображения на шестнадцатеричное представление. Пример также показывает, чтобы использовать фиксатор, чтобы протестировать функцию, которая отображает столбец чисел как текст. После того, как тестирование завершается, среда восстанавливает формат отображения к своему предварительному состоянию.

Создание определения класса FormatHexFixture

В файле в вашей рабочей папке создайте новый класс, FormatHexFixture, который наследовался классу matlab.unittest.fixtures.Fixture. Поскольку мы хотим, чтобы фиксатор восстановил предварительное состояние формата отображения MATLAB®, создайте свойство OriginalFormat отслеживать исходный формат отображения.

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

Реализация методов отключения и Setup

Подклассы класса 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
__________

Смотрите также

Похожие темы