云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

云存储_成都公司建设网站_评分榜

小七 141 0

到现在为止,服务器云服务器,设置、文件位置和目的都应该很清楚了–让我们转到实际的测试部分,从单元测试开始。

在UI5版本中,单元测试是用于功能测试的。也就是说,验证应用程序"隐藏"的任何功能,物联网行业,这些功能不一定需要关联UI元素/交互。

因此,更重要的是确保应用程序做什么,物联网竞赛,而不是如何触发。用编程中的爱车比喻来思考:单元测试检查发动机的工作方式:变速箱和离合器的组合、油门拉索间隙、换档齿轮的缠绕……你就明白了。为了验证这一点,发动机不一定要在底盘里——它在底盘外也能正常工作。测试机箱和引擎如何协同工作将成为集成测试的一项任务—本博客系列的第二部分。

在上面的文件系统布局片段中,$你的项目/webapp/test/unit/controller/应用程序控制器.js包含与$your\u project/webapp/controller相关的单元测试/应用程序控制器.js–文件名的相似性只是按惯例。

本质上,单元测试文件是这样的:

sap.ui.define语法与应用程序编码中的语法相同,提供了一个异步模块加载机构。运行时通过AppController加载和引用控制器文件。

质量模块"分组"所有后续测试下的名字。

定量试验声明实际的单元测试–变量assert位于它的中心。assert用于对先前已归纳的条件进行最终检查。

assert有一个用于测试条件的描述性API。以上断言.qual将失败:整数42和字符串"42"的类型不同。另一方面,好评返现,通过

的松散式检查断言相等(42,vSomeVar,"42和"+vSomeVar+"有相同的值");

可以工作,只检查值。

API文档提供了大量的断言示例。如何引用UI5应用程序编码进行测试将在下一节中进行说明。

…不要求完整或具有代表性

如果控制器中存在与其他UI5模块几乎没有依赖性的方法,然后测试这些就简单到实例化控制器并调用其方法。

这甚至适用于init方法onInit():

即使您应该坚持使用vc™,控制器逻辑直接访问视图而不是仅与模型交互的情况并不少见。甚至到了访问和进一步处理DOM的程度,例如使用jQuery。

这会创建控制器代码对其他UI5运行时工件的依赖性,例如sap.ui.core.mvc.Controller.getView()或sap.ui.core.元素.getDomRef().

但是QUnit测试环境不能访问UI5在运行时生成的完全控制结构和DOM(与本系列第2部分中介绍的OPA测试相反)。为了缓解这种情况,DOM的视图和部分都需要"存根"即模拟、模拟、解耦。

在UI5框架中,sinon就是为了这个目的而包含的。通过sinon.stub公司(),方法可以用特定的代码指令"重写":

使用这种方法,视图、模型甚至DOM元素都可以被存根:

啊,在运行时执行异步代码,我最喜欢的

这方面的一个典型应用是via Promises,例如在UI5框架中实现sap.ui.model模型.odata.v2。ODataModel.metadataLoaded已加载(). (不要担心跨浏览器的兼容性,UI5为IE11等有问题的候选对象提供了一个填充程序,因此您可以安全地使用global Promise对象)。

出于演示目的,下面是从我们的示例应用Promise样式中检索TODO:

相应的单元测试使用断言.async()让QUnit框架知道需要异步测试。

在(最终)断言之后,企业开发软件,async helper函数在测试完成时被调用以发出信号。

结论

这是关于测试UI5应用程序的博客系列的第一部分。

一个自定义html文件unitTests.qunit.html用于引导QUnit和被测应用程序执行单元测试。

此外还显示了两者的结构文件系统布局和测试文件本身,一些常见的单元测试用例被解释应该适用于大多数UI5开发。

下一步:为UI5应用程序运行集成(OPA)测试!