主要内容

应用测试框架概述

使用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方法。

UI组件的手势支万博1manbetx持

的手势方法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。

另请参阅

相关的话题