俗话说:不会测试的产品经理不是好开发。我们写完代码,交给测试同学后,总是会被提出各种各样的bug,那种感觉实在不好,如果能够在提交前先进行开发自测,尽可能在转测前消灭潜在的bug,岂不是很嗨。手动点执行测试过程既慢,也容易出错,而且随便改个参数,都需要进行全面测试,很是麻烦。为了解决开发同学的痛点,华为的 DevEco Studio 提供了一个测试工具,就是标题提到的好助手:ohosTest。快来认识一下,交个朋友,后面好好地用起来。那么:一、ohosTest 是谁?有什么职责呢?
ohosTest 是 DevEco Studio自动生成的一个测试模块,专门用来写和执行测试代码,他主要有两个作用:
二、ohosTest 的葫芦里面都有什么药?
当我们新建一个app工程时,可以在entry 目录下看到 ohosTest 文件夹,结构大致如下:
其中文件和文件夹及其作用如下表:
| |
|---|
ets/test/ | 存放所有测试用例文件,文件名必须以 .test.ets 结尾 |
Ability.test.ets | 示例文件,演示如何测试 Ability 生命周期等 |
module.json5 | 测试模块的配置文件,里面会声明 "type": "test" |
💡说明:我们也可以自己创建新的 .test.ets 文件,来组织不同功能的测试。
三、牛刀小试: 体验一下效果
我们写了一个简单的计算器小工具,很自然的里面有加法计算,于是我们写了一个函数add,用来计算两个数的和:
// 文件位置:entry/src/main/ets/utils/Calculator.etsexport class Calculator { add(a: number, b: number): number { return a + b }}
1. 编写单元测试:
在ohosTest/ets/test/目录下新建一个文件:Calculator.test.ets,代码如下:
import { describe, it, expect } from '@ohos/hypium'import { Calculator } from '../../../main/ets/utils/Calculator'export default function calculatorTest() { describe('Calculator_add_test', () => { it('1 + 2 应该等于 3', Level.LEVEL3, () => { let calc = new Calculator() let result = calc.add(1, 2) expect(result).assertEqual(3) }) it('负数加法测试:(-1) + (-2) = -3', Level.LEVEL3, () => { let calc = new Calculator() let result = calc.add(-1, -2) expect(result).assertEqual(-3) }) })}
进行了正负数的加法计算的测试。
其中几个术语稍微解释下:
2. 运行单元测试:
按照教程上的描述,在DevEco Studio 中,找到并用右键点击cal.test.ets 文件,选择run即可。但是我右键的时候,并没有显示“运行/run"菜单。我偷了个懒,没有立即解决该问题,而是把测试代码copy到Ability.test.ets这个文件中,运行这个文件进行测试。
在运行测试文件的过程中,也遇到几个问题,但最终顺利执行成功,测试结果显示如下图:特别鸣谢:感谢DevEco Studio自带的AI工具CodeGenie,解决问题离不开他的帮助!关于执行过程中遇到的几个小问题及其解决办法,将会在后文中持续总结,欢迎关注!