Обзор среды тестирования приложения

Используйте среду тестирования приложения MATLAB® для приложений Разработчика тестового приложения или приложений, созданных программно с помощью uifigure функция. Среда тестирования приложения позволяет вам создать тестовый класс, который программно выполняет жест на компоненте пользовательского интерфейса, таком как нажатие кнопки или перетаскивание ползунка, и проверяет поведение приложения.

Тестирование приложения

Протестируйте Создание – Основанные на классах тесты могут использовать среду тестирования приложения путем разделения на подклассы matlab.uitest.TestCase. Поскольку matlab.uitest.TestCase подкласс matlab.unittest.TestCase, ваш тест имеет доступ к функциям среды модульного тестирования, таким как проверки, фиксаторы и плагины. Чтобы экспериментировать со средой тестирования приложения в командной строке, создайте экземпляр теста с помощью matlab.uitest.TestCase.forInteractiveUse.

Содержание теста – Как правило, тест приложения программно взаимодействует с компонентами приложения с помощью метода жеста matlab.uitest.TestCase, такой как press или type, и затем выполняет проверку на результате. Например, тест может нажать один флажок и проверить, что другие флажки отключены. Или это может ввести номер в текстовое поле и проверить, что приложение правильно вычисляет результат. Эти типы тестов требуют понимания свойств протестированного приложения. Чтобы проверить нажатие кнопки, необходимо знать, где в приложении объект MATLAB хранит состояние кнопки. Чтобы проверить результат расчета, необходимо знать, как получить доступ к результату в рамках приложения.

Протестируйте Моются – Это - лучшая практика включать действие отключения, чтобы удалить приложение после теста. Как правило, метод тестирования добавляет это действие с помощью addTeardown метод matlab.unittest.TestCase.

Блокировка приложения – Когда тест приложения создает фигуру, среда, блокирует фигуру сразу, чтобы предотвратить внешние взаимодействия с компонентами. Среда тестирования приложения не блокирует компоненты пользовательского интерфейса, если вы создаете экземпляр matlab.uitest.TestCase.forInteractiveUse для экспериментирования в командной строке.

Чтобы разблокировать фигуру для отладки целей, используйте matlab.uitest.unlock функция.

Поддержка жеста компонентов пользовательского интерфейса

Методы жеста matlab.uitest.TestCase поддержите различные компоненты пользовательского интерфейса.

КомпонентТипичная функция созданияmatlab.uitest.TestCase Метод жеста
presschoosedragtypehoverchooseContextMenu
Осиaxes  
Кнопкаuibutton    
Группа кнопокuibuttongroup     
Флажокuicheckbox   
Средство выбора датыuidatepicker    
Дискретная кнопкаuiknob    
Выпадающий списокuidropdown   
Поле редактирования (числовой, текст)uieditfield    
Изображениеuiimage    
Кнопкаuiknob   
Поле спискаuilistbox    
Менюuimenu     
Polaraxespolaraxes   
Продвиньте инструментuipushtool     
Переключательuiradiobutton   
Ползунокuislider   
Счетчикuispinner   
Кнопка состоянияuibutton   
Переключатель (рокер, ползунок, переключаются),uiswitch   
Вкладкаuitab     
Группа вкладкиuitabgroup     
Текстовая областьuitextarea    
Кнопка-переключательuitogglebutton   
Переключите инструментuitoggletool    
Древовидный узелuitreenode     
Uiaxesuiaxes  
Фигура пользовательского интерфейсаuifigure   

Запишите тест для приложения

В этом примере показано, как записать тест для приложения, которое предоставляет возможности изменять объем выборки и палитру графика. Чтобы программно взаимодействовать с приложением и квалифицировать результаты, используйте среду тестирования приложения, объединенную со средой модульного тестирования.

В командной строке сделайте приложение доступным путем добавления папки, которая включает приложение в путь поиска файлов MATLAB.

addpath(fullfile(matlabroot,'examples','matlab','main'))

Чтобы исследовать свойства приложения до тестирования, создайте экземпляр приложения в командной строке.

app = ConfigurePlotAppExample;

Этот шаг не необходим для тестов, но полезно исследовать свойства, используемые тестами приложения. Например, используйте app.UpdatePlotButton получить доступ к кнопке Update Plot в объекте приложения.

Создайте тестовый класс, который наследовался matlab.uitest.TestCase.

classdef testConfigurePlotAppExample < matlab.uitest.TestCase
    
    methods (Test)

    end
    
end

Создайте метод тестирования test_SampleSize протестировать объем выборки. Метод тестирования изменяет объем выборки, обновляет график и проверяет, что поверхность использует заданный объем выборки. Вызов addTeardown удаляет приложение после того, как тест будет завершен.

classdef testConfigurePlotAppExample < matlab.uitest.TestCase
    
    methods (Test)
        function test_SampleSize(testCase)
            app = ConfigurePlotAppExample;
            testCase.addTeardown(@delete,app);
            
            testCase.type(app.SampleSizeEditField,12);
            testCase.press(app.UpdatePlotButton);
            
            ax = app.UIAxes;
            surfaceObj = ax.Children;
            testCase.verifySize(surfaceObj.ZData,[12 12]);
        end
    end
    
end

Создайте второй метод тестирования test_Colormap протестировать палитру. Метод тестирования выбирает палитру, обновляет график и проверяет, что график использует заданную палитру. Полный код теперь следующие.

classdef testConfigurePlotAppExample < matlab.uitest.TestCase
    
    methods (Test)
        function test_SampleSize(testCase)
            app = ConfigurePlotAppExample;
            testCase.addTeardown(@delete,app);
            
            testCase.type(app.SampleSizeEditField,12);
            testCase.press(app.UpdatePlotButton);
            
            ax = app.UIAxes;
            surfaceObj = ax.Children;
            testCase.verifySize(surfaceObj.ZData,[12 12]);
        end
        
        function test_Colormap(testCase)
            app = ConfigurePlotAppExample;
            testCase.addTeardown(@delete,app);
            
            testCase.choose(app.ColormapDropDown,'Winter');
            testCase.press(app.UpdatePlotButton);
            
            expectedMap = winter;
            ax = app.UIAxes;
            testCase.verifyEqual(ax.Colormap,expectedMap);
        end
    end
    
end

В командной строке, запущенной тесты.

results = runtests('testConfigurePlotAppExample')
Running testConfigurePlotAppExample
..
Done testConfigurePlotAppExample
__________


results = 

  1×2 TestResult array with properties:

    Name
    Passed
    Failed
    Incomplete
    Duration
    Details

Totals:
   2 Passed, 0 Failed, 0 Incomplete.
   5.0835 seconds testing time.

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

Похожие темы