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

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

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

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

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

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

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

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

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

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

Компонентmatlab.uitest.TestCase Метод жеста
presschoosedragtypehover
Оси   
Кнопка    
Группа кнопок    
Флажок   
Средство выбора даты    
Дискретная кнопка    
Выпадающий   
Поле редактирования (числовой, текст)    
Изображение    
Кнопка   
Поле списка    
Меню    
Polaraxes   
Переключатель   
Ползунок   
Счетчик   
Кнопка состояния   
Переключатель (рокер, ползунок, переключаются),   
Вкладка    
Группа вкладки    
Текстовая область    
Кнопка-переключатель   
Древовидный узел    
Uiaxes   
Фигура пользовательского интерфейса   

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

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

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

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.
   4.7551 seconds testing time.

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

Похожие темы