使用MATLAB®应用程序测试框架,用于测试应用程序设计器应用程序或使用uifigure
函数。应用测试框架允许您编写一个测试类,以编程方式在UI组件上执行一个手势,比如按下按钮或拖动滑块,并验证应用程序的行为。
测试的创建-基于类的测试可以通过子类化使用应用程序测试框架matlab.uitest.TestCase
.因为matlab.uitest.TestCase
的子类是matlab.unittest.TestCase
,您的测试可以访问单元测试框架的特性,例如资格证书、fixture和插件。要在命令提示符下测试应用程序测试框架,请使用matlab.uitest.TestCase.forInteractiveUse
.
测试内容-通常情况下,应用程序的测试使用手势方法与应用程序组件进行编程交互matlab.uitest.TestCase
,如新闻
或类型
,然后对结果执行限定。例如,一个测试可能会按下一个复选框并验证其他复选框是否被禁用。或者它可以在文本框中输入一个数字,并验证应用程序正确计算结果。这些类型的测试需要理解被测试应用程序的属性。为了验证按钮按下,你必须知道在应用程序对象MATLAB存储按钮的状态。为了验证计算的结果,你必须知道如何在应用程序中访问结果。
测试清理-最好的做法是在测试后包含一个删除应用程序的拆卸操作。通常,测试方法使用addTeardown
的方法matlab.unittest.TestCase
.
应用程序锁定-当应用测试创建图形时,框架会立即锁定图形,以防止与组件的外部交互。应用测试框架不会锁定UI组件,如果你创建的实例matlab.uitest.TestCase.forInteractiveUse
用于在命令提示符下进行试验。
若要为调试目的解锁图形,请使用matlab.uitest.unlock
函数。
解雇通知-在某些情况下,应用程序显示模态警报对话框,这使得它不可能与应用程序组件交互。访问对话框后面的图形可能需要关闭对话框。要以编程方式关闭图形窗口中的警报对话框,请使用dismissAlertDialog
方法。
的手势方法matlab.uitest.TestCase
万博1manbetx支持各种UI组件。
组件 | 典型的创建函数 | matlab.uitest.TestCase 手势的方法 |
|||||
新闻 |
选择 |
拖 |
类型 |
徘徊 |
chooseContextMenu |
||
轴 | 轴 |
✔ | ✔ | ✔ | ✔ | ||
按钮 | uibutton |
✔ | ✔ | ||||
按钮组 | uibuttongroup |
✔ | |||||
复选框 | uicheckbox |
✔ | ✔ | ✔ | |||
日期选择器 | uidatepicker |
✔ | ✔ | ||||
离散的旋钮 | uiknob |
✔ | ✔ | ||||
下拉 | uidropdown |
✔ | ✔ | ✔ | |||
编辑字段(数字、文本) | uieditfield |
✔ | ✔ | ||||
图像 | 用户界面图像 |
✔ | ✔ | ||||
旋钮 | uiknob |
✔ | ✔ | ✔ | |||
列表框 | uilistbox |
✔ | ✔ | ||||
菜单 | uimenu |
✔ | |||||
面板 | uipanel |
✔ | ✔ | ✔ | |||
极轴 | polaraxes |
✔ | ✔ | ✔ | |||
把工具 | uipushtool |
✔ | |||||
单选按钮 | uiradiobutton |
✔ | ✔ | ✔ | |||
滑块 | uislider |
✔ | ✔ | ✔ | |||
微调控制项 | uispinner |
✔ | ✔ | ✔ | |||
状态按钮 | uibutton |
✔ | ✔ | ✔ | |||
开关(摇杆,滑块,切换) | uiswitch |
✔ | ✔ | ✔ | |||
选项卡 | uitab |
✔ | |||||
选项卡组 | uitabgroup |
✔ | |||||
表格 | 场上 |
✔ | ✔ | ✔ | |||
文本区域 | uitextarea |
✔ | ✔ | ||||
开关按钮 | uitogglebutton |
✔ | ✔ | ✔ | |||
切换工具 | uitoggletool |
✔ | ✔ | ||||
树节点 | uitreenode |
✔ | ✔ | ||||
UI轴 | uiaxes |
✔ | ✔ | ✔ | ✔ | ||
用户界面图 | uifigure |
✔ | ✔ | ✔ | ✔ |
这个例子展示了如何为一个应用程序编写一个测试,该应用程序提供了更改样本大小和plot的颜色图的选项。要以编程方式与应用程序交互并验证结果,请使用结合单元测试框架的应用程序测试框架。
在命令提示符下,通过将包含应用程序的文件夹添加到MATLAB搜索路径中,使应用程序可以访问。
目录(fullfile (matlabroot,“例子”,matlab的,“主要”))
要在测试之前探索应用程序的属性,请在命令提示符处创建应用程序的实例。
应用= ConfigurePlotAppExample;
这个步骤对测试来说不是必需的,但它有助于探索应用程序测试使用的属性。例如,使用app.UpdatePlotButton
访问更新图按钮在app对象中。
创建继承自的测试类matlab.uitest.TestCase
.
classdeftestConfigurePlotAppExample < matlab.uitest.TestCase方法(测试)结束结束
创建一个测试方法test_SampleSize
测试样本量。测试方法修改样本大小,更新图,并验证表面使用指定的样本大小。调用addTeardown
测试完成后删除应用程序。
classdeftestConfigurePlotAppExample < matlab.uitest.TestCase方法(测试)函数test_SampleSize(testCase) app = ConfigurePlotAppExample;testCase.addTeardown (@delete、应用);testCase.type (app.SampleSizeEditField 12);testCase.press (app.UpdatePlotButton);ax = app.UIAxes;surfaceObj = ax.Children;testCase.verifySize (surfaceObj。ZData [12 12]);结束结束结束
创建第二个测试方法test_Colormap
测试颜色图。测试方法选择一个颜色图,更新绘图,并验证绘图是否使用指定的颜色图。完整的代码如下所示。
classdeftestConfigurePlotAppExample < matlab.uitest.TestCase方法(测试)函数test_SampleSize(testCase) app = ConfigurePlotAppExample;testCase.addTeardown (@delete、应用);testCase.type (app.SampleSizeEditField 12);testCase.press (app.UpdatePlotButton);ax = app.UIAxes;surfaceObj = ax.Children;testCase.verifySize (surfaceObj。ZData [12 12]);结束函数test_Colormap(testCase) app = ConfigurePlotAppExample;testCase.addTeardown (@delete、应用);testCase.choose (app.ColormapDropDown“冬天”);testCase.press (app.UpdatePlotButton);expectedMap =冬天;ax = app.UIAxes;testCase.verifyEqual (ax.Colormap expectedMap);结束结束结束
在命令提示符下运行测试。
结果= runtests (“testConfigurePlotAppExample”)
运行testConfigurePlotAppExample . .已完成testConfigurePlotAppExample __________ results = 1×2 TestResult array with properties: Name Passed Failed Incomplete Duration Details总计:2 Passed, 0 Failed, 0 Incomplete. 5.0835 seconds testing time。