choose

Класс: testCase
Пакет: matlab.uitest

Выполните выбор жеста на компоненте пользовательского интерфейса

Описание

пример

choose(testcase,comp,option) выполняет выбор жеста для заданного элемента в компоненте пользовательского интерфейса comp.

choose(testcase,compNoOpts) выполнение жеста выбора для компонента пользовательского интерфейса, который не требует дополнительной информации, такой как вкладка или узел дерева. Например, используйте этот синтаксис, чтобы выбрать конкретную вкладку, но используйте предыдущий синтаксис, чтобы выбрать конкретную вкладку из группы вкладок.

пример

choose(testcase,uit,indices) выполняет выбор жеста в неотредактируемой камере таблицы, заданной как indices в рамках компонента пользовательского интерфейса таблицы uit.

пример

choose(testcase,uit,indices,option) выполняет выбор жеста в редактируемой камере таблицы, заданной как indices. Функция использует option для изменения содержимого камеры.

пример

choose(testcase,uit,indices,'SelectionMode',mode) использует заданный режим выбора, чтобы выбрать несколько камеры, заданных indices в рамках компонента пользовательского интерфейса таблицы uit.

Входные параметры

расширить все

Образец теста, заданный как matlab.uitest.TestCase объект.

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

Поддерживаемый компонентТипичная функция создания
Группа кнопокuibuttongroup
Флажокuicheckbox
Дискретная ручкаuiknob
Выпадающий списокuidropdown
Кнопкаuiknob
Поле спискаuilistbox
Переключательuiradiobutton
Ползунокuislider
Кнопка состоянияuibutton
Переключатель (качалка, ползунок, переключатель)uiswitch
Вкладкаuitabgroup
Кнопка-переключательuitogglebutton
Переключение инструментаuitoggletool

Элемент, выбираемая в компоненте пользовательского интерфейса. Тип данных option зависит от типа тестируемого компонента. Для примера, если компонент является коммутатором, option - текст или числовое значение из Items свойство коммутатора. Если компонент является флажком или инструментом переключения, option является логическим значением. Для компонента пользовательского интерфейса таблицы с редактируемыми камерами, option может быть логическим значением или раскрывающимся элементом, соответствующим данным, содержащимся в камере.

Когда компонент имеет Items свойство, option может быть значением элемента в Items или индекс элементу в Items. Например, для дискретной ручки по умолчанию можно выбрать 'Medium' с помощью значения для option то есть либо 'Medium' или 3.

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

Поддерживаемый компонентТипичная функция создания
Вкладкаuitab
Узел дереваuitreenode

Компонент UI целевой таблицы, заданный как matlab.ui.control.Table объект. Компоненты пользовательского интерфейса таблицы создаются с помощью uitable функция.

Индексы камер таблицы, заданные как N-by-2 массив. Форма indices зависит от типа выбора камер:

  • Выбор одной камеры - вектор 1 на 2, соответствующий индексам строк и столбцов камеры.

  • Последовательный выбор нескольких камер - матрица 2 на 2, задающая контуры блока камер для выбора. Каждая строка матрицы соответствует индексам строка и столбец камеры. Среда тестирования приложений выполняет выбор жеста в указанных камерах, а также всех камер между ними.

  • Несмежный выбор нескольких камер - матрица N-by-2, где N - количество камер, которые нужно выбрать. Каждая строка матрицы соответствует индексам строк и столбцов камеры.

Пример: [1 2] (выбор одной камеры)

Пример: [1 1; 3 3] (непрерывный выбор девяти камер)

Пример: [2 3; 2 4; 5 1] (автономный выбор трёх камер)

Режим выбора камер, заданный как 'contiguous' или 'discontiguous'. Этот вход предоставляет информацию о том, как группа камер выбирается в компоненте пользовательского интерфейса таблицы:

  • 'contiguous' - Среда тестирования приложений выполняет выбранный жест в ячейках, заданных indices входной параметр и все камеры, находящиеся между этими камерами.

  • 'discontiguous' - Среда тестирования приложений выполняет выбранный жест только для ячеек, заданных indices входной параметр.

Дополнительные сведения о выборе камер таблицы см. в разделе «Свойства таблицы».

Примеры

расширить все

Создайте дискретную ручку.

knob = uiknob('discrete');

A figure with a discrete knob. The knob value is 'Off'.

Создайте интерактивный тест и выберите значение ручки 'High'. Анимированная синяя точка выполняет программный жест выбора.

tc = matlab.uitest.TestCase.forInteractiveUse;
tc.choose(knob,'High')

A figure with a discrete knob. The knob value is 'High'.

Просмотрите значение Items свойство на ручке.

knob.Items
ans =

  1×4 cell array

    {'Off'}    {'Low'}    {'Medium'}    {'High'}

Выберите значение ручки 'Low' по индексу. Ручка перемещается от 'High' на 'Low'.

tc.choose(knob,2)

A figure with a discrete knob. The knob value is 'Low'.

Создайте список и включите выбор нескольких узлов.

listbox = uilistbox('Multiselect','on')
listbox = 

  ListBox (Item 1) with properties:

              Value: {'Item 1'}
              Items: {'Item 1'  'Item 2'  'Item 3'  'Item 4'}
          ItemsData: []
        Multiselect: 'on'
    ValueChangedFcn: ''
           Position: [100 100 100 74]

  Show all properties

A figure with a list box that has four items. Item 1 is chosen.

Создайте интерактивный тест и выберите элементы с 1 по 3.

tc = matlab.uitest.TestCase.forInteractiveUse;
tc.choose(listbox,1:3)

A figure with a list box that has four items. Items 1 through 3 are chosen.

Выберите элементы 1 и 3 с помощью значений Items свойство.

tc.choose(listbox,{'Item 1','Item 3'})

A figure with a list box that has four items. Items 1 and 3 are chosen.

Создайте ползунок.

s = uislider;

Создайте интерактивный тест и проверьте, что значение кнопки ползунка 0.

tc = matlab.uitest.TestCase.forInteractiveUse;
tc.verifyEqual(s.Value,0)
Verification passed.

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

expVal = 42;
tc.choose(s,expVal)
tc.verifyEqual(s.Value,expVal,'AbsTol',0.1)
Verification passed.

Создать рисунок с двумя вкладками.

fig = uifigure;
group = uitabgroup(fig);
tab1 = uitab(group,'Title','Tab #1');
tab2 = uitab(group,'Title','Tab #2');

Создайте интерактивный тест и проверьте, что заголовок выбранной вкладки содержит подстроку '#1'.

tc = matlab.uitest.TestCase.forInteractiveUse;
tc.verifySubstring(group.SelectedTab.Title,'#1')
verification passed.

Выберите вкладку 2 и проверьте, что выбранная вкладка изменена.

tc.choose(group,'Tab #2')
tc.verifyEqual(group.SelectedTab,tab2)
Verification passed.

Создайте компонент пользовательского интерфейса таблицы, который содержит смесь различных типов данных. Установите ColumnEditable Свойство так, чтобы пользователи могли редактировать данные в последнем столбце.

fig = uifigure;
uit = uitable(fig);
d = {'Male',52,true;'Male',40,true;'Female',25,false};
uit.Data = d;
uit.ColumnName = {'Gender','Age','Authorized'};
uit.ColumnEditable = [false false true];

Создайте интерактивный тест и выберите камеру таблицы с индексами (2,2).

tc = matlab.uitest.TestCase.forInteractiveUse;
tc.choose(uit,[2 2])

Снимите флажок в камере таблицы с индексами (1,3).

tc.choose(uit,[1 3],false)

Создайте компонент пользовательского интерфейса таблицы, который отображает массив случайных целых чисел 10 на 3.

fig = uifigure;
uit = uitable(fig,'Data',randi(100,10,3));

Создайте интерактивный тест и выберите камеры с индексами (1,1) и (3,3).

tc = matlab.uitest.TestCase.forInteractiveUse;
tc.choose(uit,[1 1; 3 3],'SelectionMode','discontiguous')

Теперь выберите камеры с индексами (1,1) и (3,3) и все камеры между этими камерами.

tc.choose(uit,[1 1; 3 3],'SelectionMode','contiguous')

Вопросы совместимости

расширить все

Поведение изменено в R2020b

Введенный в R2018a