惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

D
Docker
U
Unit 42
Google DeepMind News
Google DeepMind News
B
Blog RSS Feed
S
SegmentFault 最新的问题
阮一峰的网络日志
阮一峰的网络日志
雷峰网
雷峰网
Microsoft Security Blog
Microsoft Security Blog
爱范儿
爱范儿
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
博客园_首页
Apple Machine Learning Research
Apple Machine Learning Research
罗磊的独立博客
GbyAI
GbyAI
Stack Overflow Blog
Stack Overflow Blog
Martin Fowler
Martin Fowler
宝玉的分享
宝玉的分享
L
LangChain Blog
Engineering at Meta
Engineering at Meta
量子位
有赞技术团队
有赞技术团队
博客园 - 【当耐特】
A
About on SuperTechFans
Y
Y Combinator Blog

博客园 - webabcd

开天辟地 HarmonyOS(鸿蒙) - 工具: Targets, Products 开天辟地 HarmonyOS(鸿蒙) - 优化: HiDebug(用于获取 cpu, 内存等信息) 开天辟地 HarmonyOS(鸿蒙) - 优化: errorManager(捕获未处理异常) 开天辟地 HarmonyOS(鸿蒙) - 优化: HiAppEvent(事件日志) 开天辟地 HarmonyOS(鸿蒙) - 优化: hilog 日志 开天辟地 HarmonyOS(鸿蒙) - 安全: 用户认证 开天辟地 HarmonyOS(鸿蒙) - 安全: 申请权限 开天辟地 HarmonyOS(鸿蒙) - 安全: 关键资产 开天辟地 HarmonyOS(鸿蒙) - 安全: 加密解密 开天辟地 HarmonyOS(鸿蒙) - 信息: CommonEventManager(用于进程间通信,以及订阅系统事件) 开天辟地 HarmonyOS(鸿蒙) - 信息: emitter(用于同一进程内不同线程间或同一线程内发送和订阅事件) 开天辟地 HarmonyOS(鸿蒙) - 信息: 各种信息 开天辟地 HarmonyOS(鸿蒙) - 华为账号: 华为账号的默认登录 开天辟地 HarmonyOS(鸿蒙) - 元服务: 元服务 开天辟地 HarmonyOS(鸿蒙) - 媒体: AVImageGenerator(提取视频指定时间点的图像) 开天辟地 HarmonyOS(鸿蒙) - 媒体: AVMetadataExtractor(提取视频或音频的元数据信息) 开天辟地 HarmonyOS(鸿蒙) - 媒体: AVTranscoder(视频转码) 开天辟地 HarmonyOS(鸿蒙) - 媒体: SoundPool(音效播放器) 开天辟地 HarmonyOS(鸿蒙) - 媒体: AVPlayer(播放器,用于播放视频或音频)
开天辟地 HarmonyOS(鸿蒙) - 测试: 单元测试
webabcd · 2025-06-13 · via 博客园 - webabcd

源码 https://github.com/webabcd/HarmonyDemo
作者 webabcd

开天辟地 HarmonyOS(鸿蒙) - 测试: 单元测试

示例如下:

pages\test\UnitTest.ets

/*
 * 单元测试
 * 参见 /entry/src/test/List.test.ets 和 /entry/src/test/UnitTest.test.ets 中的说明
 *
 * 创建测试用例的方式一(自动方式):
 * 在 DevEco Studio 中打开 ets 文件,然后右键,然后点击 Show Context Actions 之后,创建测试文件即可
 *
 * 创建测试用例的方式一(手动方式):
 * 1、在 /entry/src/test 目录中创建一个 .test.ets 测试文件,并写自定义的测试用例
 * 2、在 /entry/src/test/List.test.ets 文件的 testsuite 函数内调用你的 .test.ets 测试文件中的函数
 */

import { TitleBar } from '../TitleBar'

@Entry
@Component
struct UnitTest {

  @State message: string = ""

  build() {
    Column({space:10}) {
      TitleBar()
      Text(this.message)
    }
  }
}

\entry\src\test\List.test.ets

import UnitTestTest from './UnitTest.test'

export default function testsuite() {
  // 需要在此处调用你的 .test.ets 测试文件中的函数
  UnitTestTest()
}

\entry\src\test\UnitTest.test.ets

import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from '@ohos/hypium'
import { Helper } from '../main/ets/utils/Helper';

// 需要先在 /entry/src/test/List.test.ets 文件的 testsuite 函数内调用 UnitTestTest()
// 在本页面的 UnitTestTest() 名字上点击右键,然后点击右键菜单中的相关选项,就可以运行测试用例了
// 运行本例后的测试结果为:
// Test Results(失败)
// └── UnitTestTests(失败)
//     ├── MyTest1(成功)
//     │   ├── test1(成功)
//     │   └── test2(成功)
//     └── MyTest2(失败)
//         ├── test1(失败)
//         └── test2(成功)
export default function UnitTestTest() {
  // describe() - 定义测试用例组
  describe('MyTest1', () => {
    beforeAll(() => {
      // 组内所有测试用例执行前执行
    })
    beforeEach(() => {
      // 组内每个测试用例执行前执行
    })
    afterEach(() => {
      // 组内每个测试用例执行后执行
    })
    afterAll(() => {
      // 组内所有测试用例执行后执行
    })

    // it() - 定义测试用例
    // expect() - 测试指定的变量,返回一个 Assert 断言
    //   assertEqual() - 断言两个值是否相等
    //   not() - 获取结果相反的 Assert 断言
    //   注:还有好多其他方法,详见文档
    it('test1', 0, () => {
      let a = Helper.formatWithThousandSeparator(31_415_926)
      expect(a).assertEqual('31,415,926') // 断言 a 等于 '31,415,926'
    })

    it('test2', 0, () => {
      expect(1).not().assertEqual(2) // 断言 1 不等于 2
    })

  })

  describe('MyTest2', () => {
    beforeAll(() => { })
    beforeEach(() => { })
    afterEach(() => { })
    afterAll(() => { })

    it('test1', 0, () => {
      expect(1).assertEqual(2)
    })

    it('test2', 0, () => {
      expect(1).assertEqual(1)
    })
  })
}

源码 https://github.com/webabcd/HarmonyDemo
作者 webabcd