Используйте среду тестирования приложения 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
.
Методы жеста matlab.uitest.TestCase
поддерживают различные компоненты UI.
Компонент | mATLAB. uitest. Метод жеста TestCase | |||
---|---|---|---|---|
press | choose | drag | ввод | |
Кнопка | ✔ | |||
Кнопка состояния | ✔ | ✔ | ||
Флажок | ✔ | ✔ | ||
Переключатель | ✔ | ✔ | ||
Дискретная кнопка | ✔ | |||
Кнопка | ✔ | ✔ | ||
Выпадающий | ✔ | ✔ | ||
Поле редактирования | ✔ | |||
Текстовая область | ✔ | |||
Счетчик | ✔ | ✔ | ||
Ползунок | ✔ | ✔ | ||
Поле списка | ✔ | |||
Группа кнопок | ✔ | |||
Группа вкладки | ✔ | |||
Вкладка | ✔ | |||
Древовидный узел | ✔ | |||
Меню | ✔ | |||
Оси | ✔ |
Этот пример показывает, как записать тест для приложения, которое предоставляет возможности изменять объем выборки и палитру графика. Чтобы программно взаимодействовать с приложением и квалифицировать результаты, используйте среду тестирования приложения, объединенную со средой модульного тестирования.
Чтобы исследовать свойства этого приложения до тестирования, создайте экземпляр приложения в командной строке.
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.