choose
类: matlab.uitest.TestCase
包: matlab.uitest
对 UI 组件执行选择手势
语法
说明
choose(
在不需要其他信息的 UI 组件上执行选择手势,例如选项卡或树节点。例如,使用此语法可选择特定选项卡,但使用以前的语法可从选项卡组中选择特定选项卡。testcase
,compNoOpts
)
输入参数
testcase
— 测试用例的实例
matlab.uitest.TestCase
对象
测试用例的实例,指定为 matlab.uitest.TestCase
对象。
comp
— 要选择的组件
UI 组件对象
测试期间要选择的组件,指定为支持选择手势的 UI 组件对象。支持选择手势的组件包括复选框、旋钮、开关和下拉列表。
支持的组件 | 典型的创建函数 |
---|---|
按钮组 | uibuttongroup |
复选框 | uicheckbox |
分档旋钮 | uiknob |
下拉列表 | uidropdown |
旋钮 | uiknob |
列表框 | uilistbox |
单选按钮 | uiradiobutton |
滑块 | uislider |
状态按钮 | uibutton |
开关(跷板、滑块、拨动) | uiswitch |
选项卡组 | uitabgroup |
切换按钮 | uitogglebutton |
切换工具 | uitoggletool |
option
— 要在组件中选择的项目
取决于组件
要在 UI 组件中选择的项目。option
的数据类型取决于所测试的组件的类型。例如,如果该分量是开关,则 option
是开关的 Items
属性中的文本或数值。如果该组件是复选框或切换工具,则 option
是逻辑值。对于具有可编辑单元格的表 UI 组件,option
可以是逻辑值或与单元格中包含的数据对应的下拉项。
当组件具有 Items
属性时,option
可以是 Items
中某个元素的值,也可以是 Items
中某个元素的索引。例如,对于默认的分档旋钮,您可以使用 option
值 'Medium'
或 3 来选择 'Medium'。
compNoOpts
— 要选择的无选项组件
UI 组件对象
要选择的组件,指定为支持选择手势且不需要其他信息的 UI 组件对象。支持选择手势的组件包括选项卡和树节点。
支持的组件 | 典型的创建函数 |
---|---|
制表符 | uitab |
树节点 | uitreenode |
uit
— 目标表 UI 组件
matlab.ui.control.Table
对象
目标表 UI 组件,指定为 matlab.ui.control.Table
对象。表 UI 组件是用 uitable
函数创建的。
indices
— 要选择的表单元格的索引
n×2 数组
要选择的表单元格的索引,指定为 N×2 数组。indices
的形状取决于单元格选择的类型:
以不连续方式选择一个或多个单元格 - N×2 矩阵,其中 N 是要选择的单元格数。每个矩阵行对应于要选择的单元格的行和列索引。
连续选择多个单元格 - 指定要选择的单元格块边界的 2×2 矩阵。每个矩阵行对应于一个单元格的行和列索引。App 测试框架对指定的单元格以及这些单元格之间的所有单元格执行选择手势。
示例: [1 2]
(选择单个单元格)
示例: [2 3; 2 4; 5 1]
(以不连续方式选择三个单元格)
示例: [1 1; 3 3]
(连续选择九个单元格)
示例
选择分档旋钮上的值
创建一个分档旋钮。
knob = uiknob('discrete');
创建一个交互式测试用例并选择 'High' 旋钮值。用一个动画蓝点执行编程选择手势。
tc = matlab.uitest.TestCase.forInteractiveUse;
tc.choose(knob,'High')
查看旋钮上 Items
属性的值。
knob.Items
ans = 1×4 cell array {'Off'} {'Low'} {'Medium'} {'High'}
按索引选择 'Low' 旋钮值。旋钮从 'High'
移动到 'Low'
。
tc.choose(knob,2)
选择列表框中的多个项目
创建一个列表框并启用多节点选择。
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
创建一个交互式测试用例并选择项目 1 到 3。
tc = matlab.uitest.TestCase.forInteractiveUse; tc.choose(listbox,1:3)
使用 Items
属性的值选择项目 1 和 3。
tc.choose(listbox,{'Item 1','Item 3'})
选择滑块值并验证更改
创建一个滑块控件。
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 中推出R2021a: 在表 UI 组件上执行手势
您可以在针对表 UI 组件的测试中执行选择手势。choose
方法使用新语法来测试单个表单元格或多个表单元格上的选择手势。
R2020b: 在切换工具上执行手势
您可以在针对切换工具的测试中执行选择手势。
R2020b: 按钮组内选择手势的索引顺序已更改
当您使用索引选择单选按钮或切换按钮时,App 测试框架将对 ButtonGroup
对象的 Buttons
属性进行索引。在以前的版本中,框架对 ButtonGroup
对象的 Children
属性进行索引。例如,创建一个包含六个切换按钮的按钮组:
f = uifigure; bg = uibuttongroup(f); tb1 = uitogglebutton(bg,'Position',[11 165 140 22],'Text','One'); tb2 = uitogglebutton(bg,'Position',[11 140 140 22],'Text','Two'); tb3 = uitogglebutton(bg,'Position',[11 115 140 22],'Text','Three'); tb4 = uitogglebutton(bg,'Position',[11 90 140 22],'Text','Four'); tb5 = uitogglebutton(bg,'Position',[11 65 140 22],'Text','Five'); tb6 = uitogglebutton(bg,'Position',[11 40 140 22],'Text','Six');
下表显示用索引 2
指定的切换按钮上的选择手势的结果:
测试 | 从 R2020b 开始 | R2020a 及更早版本 |
---|---|---|
tc = matlab.uitest.TestCase.forInteractiveUse; tc.choose(bg,2) | MATLAB® 选择切换按钮 | MATLAB 选择切换按钮 |
MATLAB 命令
您点击的链接对应于以下 MATLAB 命令:
请在 MATLAB 命令行窗口中直接输入以执行命令。Web 浏览器不支持 MATLAB 命令。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)