当前位置: 首页 > 科技观察

初步了解鸿蒙的单元测试基础

时间:2023-03-17 14:12:10 科技观察

想要了解更多请访问:鸿蒙技术社区与华为官方共建https://harmonyos.51cto.com概述单元测试对于大多数人来说可能有点陌生,一般公司不会写单元测试,但实际上小的单元测试可以带来优秀的代码质量,而且单元测试体积小,更容易设计、执行、记录和分析结果。尤其像我们的ZEGO,也就是发音视频SDK,有些接口并没有在app中体现出来,单元测试可以测试的更完整。下面以鸿蒙的DevEcoStudio工具为例,演示如何进行单元测试。创建第一个测试用例,选择自己项目中需要单元测试的类,在单机上右击选择【生成】,会出现如下弹窗,选择【测试】。完成第一步后,将出现一个新的弹出窗口。华为的开发工具默认选择的是【JUnit3】,这里可以选择使用【JUnit4】。在[JUnit3]中,测试类需要继承junit.framework.TestCase类,而在[JUniy4]中则不需要。另外[JUnit4]使用了注解,写起来更方便。我个人推荐【Junit4】,因为使用注解真的很好吃。按照上图点击确定后,就会创建一个单元测试类。然后我们可以在上面添加一个@FixMethodOrder注解。FixMethodOrder可以指定该类方法的执行顺序。有3种内置模式。3种模式的区别如下:我一般使用JVM,按照定义的方法顺序执行。比如我们需要先初始化SDK,然后登录房间,然后推流,再拉流。它需要按顺序执行4个步骤。使用这种模式可以处理前提条件。在定义的函数上加上@Test注解,表示该函数是单元测试函数,运行单元测试时会先运行第一个函数。使用[assertNotNull]判断SDK引擎创建是否成功。如果【SDK】返回【null】,表示第一次功能测试失败。另外,在创建引擎后,可以将[SDK]对象作为静态对象使用,让多个函数共享一个对象。其实断言函数有很多,可以参考如下:点击运行单元测试,可以在左下角看到方法的执行结果。综上,鸿蒙的单元测试用的是【JUnit】,还是很好用的。单元测试只测试一个方法单元,而不是整个过程。可以在系统测试前使用单元测试进行自测,修复错误的成本更低。比如我们的ZEGO,也就是关节视频SDK,在发布新版本的时候,会进行大量的测试。为了保证质量,我们不仅会通过单元测试,自动化模拟业务的接口测试,最后还会通过完整链路的人工测试,保证交付的SDK的稳定性,也希望更多的开发者注意单元测试。更多信息请访问:Harmonyos.51cto.com,与华为官方合作打造的鸿蒙技术社区