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

Используйте среду тестирования приложения 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
Кнопка    
Кнопка состояния   
Флажок   
Переключатель   
Дискретная кнопка    
Кнопка   
Выпадающий   
Поле редактирования    
Текстовая область    
Счетчик   
Ползунок   
Поле списка    
Группа кнопок    
Группа вкладки    
Вкладка    
Древовидный узел    
Меню    
Средство выбора даты    
Оси   
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.

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

Похожие темы