Main Content

本页的翻译已过时。点击此处可查看最新英文版本。

choose

类: matlab.uitest.TestCase
包: matlab.uitest

对 UI 组件执行选择手势

说明

示例

choose(testcase,comp,option) 对 UI 组件 comp 上的指定项目执行选择手势。

choose(testcase,compNoOpts) 在不需要其他信息的 UI 组件上执行选择手势,例如选项卡或树节点。例如,使用此语法可选择特定选项卡,但使用以前的语法可从选项卡组中选择特定选项卡。

示例

choose(testcase,uit,indices) 在表 UI 组件 uit 中的 indices 指定的不可编辑表单元格上执行选择手势。

示例

choose(testcase,uit,indices,option) 在由 indices 指定的可编辑表单元格上执行选择手势。该函数使用 option 来修改单元格的内容。

示例

choose(testcase,uit,indices,'SelectionMode',mode) 使用给定的选择模式选择由表 UI 组件 uit 中的 indices 指定的多个单元格。

输入参数

全部展开

测试用例的实例,指定为 matlab.uitest.TestCase 对象。

测试期间要选择的组件,指定为支持选择手势的 UI 组件对象。支持选择手势的组件包括复选框、旋钮、开关和下拉列表。

支持的组件典型的创建函数
按钮组uibuttongroup
复选框uicheckbox
分档旋钮uiknob
下拉列表uidropdown
旋钮uiknob
列表框uilistbox
单选按钮uiradiobutton
滑块uislider
状态按钮uibutton
开关(跷板、滑块、拨动)uiswitch
选项卡组uitabgroup
切换按钮uitogglebutton
切换工具uitoggletool

要在 UI 组件中选择的项目。option 的数据类型取决于所测试的组件的类型。例如,如果该分量是开关,则 option 是开关的 Items 属性中的文本或数值。如果该组件是复选框或切换工具,则 option 是逻辑值。对于具有可编辑单元格的表 UI 组件,option 可以是逻辑值或与单元格中包含的数据对应的下拉项。

当组件具有 Items 属性时,option 可以是 Items 中某个元素的值,也可以是 Items 中某个元素的索引。例如,对于默认的分档旋钮,您可以使用 option'Medium' 或 3 来选择 'Medium'。

要选择的组件,指定为支持选择手势且不需要其他信息的 UI 组件对象。支持选择手势的组件包括选项卡和树节点。

支持的组件典型的创建函数
制表符uitab
树节点uitreenode

目标表 UI 组件,指定为 matlab.ui.control.Table 对象。表 UI 组件是用 uitable 函数创建的。

要选择的表单元格的索引,指定为 N×2 数组。indices 的形状取决于单元格选择的类型:

  • 选择单个单元格 - 对应于要选择的单元格的行和列索引的 1×2 向量。

  • 连续选择多个单元格 - 指定要选择的单元格块边界的 2×2 矩阵。每个矩阵行对应于一个单元格的行和列索引。App 测试框架对指定的单元格以及这些单元格之间的所有单元格执行选择手势。

  • 以不连续方式选择多个单元格 - N×2 矩阵,其中 N 是要选择的单元格数。每个矩阵行对应于要选择的单元格的行和列索引。

示例: [1 2](选择单个单元格)

示例: [1 1; 3 3](连续选择九个单元格)

示例: [2 3; 2 4; 5 1](以不连续方式选择三个单元格)

单元格选择模式,指定为 'contiguous''discontiguous'。此输入提供有关如何在表 UI 组件中选择一组单元格的信息:

  • 'contiguous' - App 测试框架对由 indices 输入参数指定的单元格以及这些单元格之间的所有单元格执行选择手势。

  • 'discontiguous' - App 测试框架仅对 indices 输入参数指定的单元格执行选择手势。

有关表单元格选择的详细信息,请参阅 Table 属性

示例

全部展开

创建一个分档旋钮。

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.

使用 Items 属性的值选择项目 1 和 3。

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.

创建一个包含混合使用的不同数据类型的表 UI 组件。设置 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 随机整数数组的表 UI 组件。

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')

版本历史记录

在 R2018a 中推出

全部展开

R2020b 中的行为有变化