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

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

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

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

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

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

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

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

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

Методы жеста matlab.uitest.TestCase поддерживают различные компоненты UI.

КомпонентmATLAB. uitest. Метод жеста TestCase
presschoosedragввод
Кнопка   
Кнопка состояния  
Флажок  
Переключатель  
Дискретная кнопка   
Кнопка  
Выпадающий  
Поле редактирования   
Текстовая область   
Счетчик  
Ползунок  
Поле списка   
Группа кнопок   
Группа вкладки   
Вкладка   
Древовидный узел   
Меню   
Оси   

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

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

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

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.

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

Похожие темы

Была ли эта тема полезной?