Main Content

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

matlab.uitest.TestCase 类

包: matlab.uitest
超类: matlab.unittest.TestCase

TestCase,用来编写使用 App 测试框架的测试

说明

使用 matlab.uitest.TestCase 类可以编写使用 App 测试框架的测试。matlab.uitest.TestCase 派生自 matlab.unittest.TestCase 类。

为了避免用户在测试过程中干扰 App,框架会锁定新的图窗实例。被锁定的图窗中的组件仅通过 TestCase 方法(如 presschoose)来响应编程手势。

构造

测试框架可以构造 matlab.uitest.TestCase 实例。

方法

choose对 UI 组件执行选择手势
chooseContextMenu 在上下文菜单项上执行选择手势
dismissAlertDialog 关闭图窗窗口中最前面的警报对话框
drag对 UI 组件执行拖动手势
forInteractiveUse创建供交互使用的 TestCase 对象
hover对 UI 组件执行悬停手势
press对 UI 组件执行按下手势
type在 UI 组件中键入

继承的方法

addTeardown动态向 TestCase 实例添加拆解例程
applyFixture将脚手架与 TestCase 配合使用
createTemporaryFolder Create temporary folder
forInteractiveUse创建供交互使用的 TestCase
getSharedTestFixtures提供对共享测试脚手架的访问权限
log在测试执行期间记录诊断信息
onFailure动态添加测试失败的诊断
run运行 TestCase 测试

TestCase 类还从以下类继承方法:

属性

Abstracttrue
HandleCompatibiletrue

有关类属性的信息,请参阅类属性

复制语义

句柄。要了解句柄类如何影响复制操作,请参阅复制对象

示例

全部折叠

创建一个分档旋钮。

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

创建一个状态按钮。

b = uibutton('state');

创建一个交互式测试用例,并验证状态按钮的值为 false

tc = matlab.uitest.TestCase.forInteractiveUse;
tc.verifyFalse(b.Value)
Verification passed.

按下该按钮并验证状态更改为 true。表示编程按下手势的蓝点出现在按钮上,然后消失。

tc.press(b)
tc.verifyTrue(b.Value)
Verification passed.

创建一个最小值为 -237、最大值为 237、起始值为 7 的滑块。

slider = uislider('Limits',[-237 237],'Value',7);

创建一个交互式测试用例并验证滑块的初始值。

tc = matlab.uitest.TestCase.forInteractiveUse;
tc.verifyEqual(slider.Value,7)
Verification passed.

在两个值之间拖动滑块并验证最终值。由于框架模仿用户将组件移动到任意精确值的操作,因此最好使用容差来比较实际滑块值和预期滑块值。

val = 26.75;
tc.drag(slider,-val,val)
tc.verifyEqual(slider.Value,val,'AbsTol',0.1)
Verification passed.

版本历史记录

在 R2018a 中推出