主要内容

为应用程序编写测试

这个例子展示了如何为App Designer应用程序编写测试。要以编程方式与应用程序交互并验证结果,请使用应用程序测试框架和单元测试框架。

在命令提示符处,通过将包含该应用程序的文件夹添加到MATLAB中,使该应用程序可以访问®搜索路径。

目录(fullfile (matlabroot,“例子”matlab的“主要”))

要在测试之前探索此应用程序的属性,请在命令提示符处创建该应用程序的实例。

应用= PatientsDisplay;

这个步骤对测试来说不是必需的,但它有助于探索应用程序测试使用的属性。例如,使用app.BloodPressureSwitch访问血压在app对象中切换。

创建继承自的测试类matlab.uitest.TestCase.要测试选项卡切换功能,请创建一个测试方法test_tab.测试方法选择数据选项卡,然后验证所选选项卡具有正确的标题。的TestMethodSetup方法为每个测试创建一个应用程序,并在测试完成后删除它。

classdefTestPatientsDisplay < matlab.uitest.TestCase属性应用程序结束方法(TestMethodSetup)函数launchApp testCase (testCase)。应用= PatientsDisplay;testCase.addTeardown (@delete testCase.App);结束结束方法(测试)函数test_tab (testCase)%选择数据选项卡dataTab = testCase.App.DataTab;testCase.choose (dataTab)选中“%验证数据”选项卡testCase.verifyEqual (testCase.App.TabGroup.SelectedTab.Title“数据”结束结束结束

创建一个test_plottingOptions方法,测试各种绘图选项。测试方法按柱状图单选按钮,并验证x标签是否已更改。然后,它改变了本宽度滑块并验证箱子的数量。

classdefTestPatientsDisplay < matlab.uitest.TestCase属性应用程序结束方法(TestMethodSetup)函数launchApp testCase (testCase)。应用= PatientsDisplay;testCase.addTeardown (@delete testCase.App);结束结束方法(测试)函数test_plottingOptions (testCase)%按直方图单选按钮testCase.press (testCase.App.HistogramButton)%验证xlabel从“重量”更新为“收缩压”testCase.verifyEqual (testCase.App.UIAxes.XLabel.String“收缩”%将Bin宽度改为9testCase.choose (testCase.App.BinWidthSlider, 9)%确认箱子的数量现在是4testCase.verifyEqual (testCase.App.UIAxes.Children.NumBins, 4)结束函数test_tab (testCase)...结束结束

创建一个test_bloodPressure测试血压数据并显示的方法。测试方法验证y轴标签和散点的值。然后就变成了舒张压读取,并再次验证标签和数据。

classdefTestPatientsDisplay < matlab.uitest.TestCase属性应用程序结束方法(TestMethodSetup)函数launchApp testCase (testCase)。应用= PatientsDisplay;testCase.addTeardown (@delete testCase.App);结束结束方法(测试)函数test_bloodPressure (testCase)%从app中提取血压数据t = testCase.App.DataTab.Children.Data;t.Gender =分类(t.Gender);allMales = t (t。性别= =“男”:);maleDiastolicData = allMales.Diastolic ';maleSystolicData = allMales.Systolic ';验证ylabel和男性收缩压数据显示ax = testCase.App.UIAxes;testCase.verifyEqual (ax.YLabel.String“收缩”) testCase.verifyEqual (ax.Children.YData maleSystolicData)%切换到“舒张”读数testCase.choose (testCase.App.BloodPressureSwitch舒张压的验证ylabel改变和男性舒张数据显示testCase.verifyEqual (ax.YLabel.String舒张压的) testCase.verifyEqual (ax.Children.YData maleDiastolicData);结束函数test_plottingOptions (testCase)...函数test_tab (testCase)...结束结束

创建一个test_gender方法测试性别数据并显示。测试方法验证男性分散点的数量,然后按复选框以包括女性数据。它验证了绘制了两个数据集,并且女性数据的颜色是红色。最后,它清除男性数据复选框,并验证绘制的数据集和散点的数量。这个测试失败是因为有53个女性分散点而不是50个。如果要在测试失败时截屏,请使用ScreenshotDiagnosticonFailure方法。

classdefTestPatientsDisplay < matlab.uitest.TestCase属性应用程序结束方法(TestMethodSetup)函数launchApp testCase (testCase)。应用= PatientsDisplay;testCase.addTeardown (@delete testCase.App);结束结束方法(测试)函数test_gender (testCase)导入matlab.unittest.diagnostics.ScreenshotDiagnostictestCase.onFailure (ScreenshotDiagnostic);确认47个男性分散点ax = testCase.App.UIAxes;testCase.verifyNumElements (ax.Children.XData, 47岁);%启用女性数据的复选框testCase.choose (testCase.App.FemaleCheckBox);%验证显示两个数据集,母数据为红色testCase.assertNumElements (ax.Children 2);testCase.verifyEqual (ax.Children(1)。CData [1 0 0]);%禁用男性数据testCase.choose (testCase.App.MaleCheckBox假);%验证一个数据集的显示和散点的数量testCase.verifyNumElements (ax.Children, 1);testCase.verifyNumElements (ax.Children.XData, 50);结束函数test_bloodPressure (testCase)%从app中提取血压数据t = testCase.App.DataTab.Children.Data;t.Gender =分类(t.Gender);allMales = t (t。性别= =“男”:);maleDiastolicData = allMales.Diastolic ';maleSystolicData = allMales.Systolic ';验证ylabel和男性收缩压数据显示ax = testCase.App.UIAxes;testCase.verifyEqual (ax.YLabel.String“收缩”) testCase.verifyEqual (ax.Children.YData maleSystolicData)%切换到“舒张”读数testCase.choose (testCase.App.BloodPressureSwitch舒张压的验证ylabel改变和男性舒张数据显示testCase.verifyEqual (ax.YLabel.String舒张压的) testCase.verifyEqual (ax.Children.YData maleDiastolicData);结束函数test_plottingOptions (testCase)%按直方图单选按钮testCase.press (testCase.App.HistogramButton)%验证xlabel从“重量”更新为“收缩压”testCase.verifyEqual (testCase.App.UIAxes.XLabel.String“收缩”%将Bin宽度改为9testCase.choose (testCase.App.BinWidthSlider, 9)%确认箱子的数量现在是4testCase.verifyEqual (testCase.App.UIAxes.Children.NumBins, 4)结束函数test_tab (testCase)%选择数据选项卡dataTab = testCase.App.DataTab;testCase.choose (dataTab)选中“%验证数据”选项卡testCase.verifyEqual (testCase.App.TabGroup.SelectedTab.Title“数据”结束结束结束

运行测试。

结果= runtests (“TestPatientsDisplay”);
运行TestPatientsDisplay  ================================================================================ 验证失败TestPatientsDisplay / test_gender。--------------------- 框架的诊断 : --------------------- verifyNumElements失败了。——>该值没有正确的元素数量。实际元素数:53期望元素数:50实际值:列1到49 131 133 119 142 142 132 128 137 129 131 133 117 137 146 123 143 114 126 137 138 137 118 128 135 121 136 135 147 124 134 130 130 127 141 111 134 137 136 130 137 127 127 115 131 126 120 132 120 123 50列通过53 141 129 124 134  ---------------------- 额外的诊断 : ---------------------- 捕获屏幕截图:——> C: \ Temp \ 83292 efd-b703-46ef-8c41-00e20167321d \ screenshot_c025020f - 281 - e - 483 - C - 8 - ca8 f1c857421fde.png  ------------------ 堆栈信息 : ------------------ 在C: \ \ TestPatientsDisplay工作。在34米(TestPatientsDisplay.test_gender)  ================================================================================ ....完成TestPatientsDisplay  __________ 失败失败总结:名字不完整的原因(s ) ============================================================================== TestPatientsDisplay / test_gender X验证失败。

另请参阅

相关的话题