UNPKG

enum-plus

Version:

A drop-in replacement for native enum. Like native enum but much better!

35 lines (24 loc) 2.2 kB
# EnumPlus 单元测试指南 ## 概述 本文档提供了在 EnumPlus 项目中使用 Jest 和 Playwright 编写测试的指南。目标是确保单元测试和端到端(E2E)测试共享一个公共代码库,同时适应两种测试框架之间的差异。 ## 测试框架 - **Jest**:用于在 Node.js 环境中进行单元测试。 - **Playwright**:用于在浏览器环境中进行端到端(E2E)测试。 ## 测试结构 每个测试分为两个主要部分:`evaluate``assert`- **Evaluate**:这一部分包含运行实际测试逻辑的代码。它应该是可序列化的,不依赖于闭包或外部状态。 - **Assert**:这一部分包含验证测试结果的断言。它也应该是可序列化的。 ## 编写测试的指南 1. **序列化**:确保 `evaluate``assert` 部分都是可序列化的。避免使用闭包或无法序列化的外部状态。 2. **避免闭包**:尽量减少在 `evaluate` 部分使用闭包。如果闭包是必要的,请将它们包含在 `evaluate` 函数的返回值中,以确保它们在 `assert` 部分可访问。 3. **外部数据**:使用外部数据(例如 enum-plus、config、data)时,确保它与浏览器环境兼容。这可能涉及将数据编译到 `e2e` 目录中。 4. **一致的 API**:为 Jest 和 Playwright 测试使用一致的 API,以促进代码共享和维护。 5. **测试命名**:使用描述性的名称为测试命名,以清楚地表明它们的目的和功能。 6. **文档**:记录测试设计用来覆盖的任何特定行为或边缘情况。 7. **代码覆盖率**:确保测试覆盖了代码库中的关键路径和边缘情况。使用覆盖率工具来识别未覆盖的代码区域。代码覆盖率要求达到`100%`。 <!-- 1. jest和playwright复用一套代码 2. 所以在单元测试编写时还是有点区别 1. test分为evaluate和assert两个部分 2. 两个方法的入参和返回值都需要可序列化 3. 尽量不使用闭包,如果必须要使用的话,请添加到evaluate的返回值中 4. 用到的外部数据(例如enum-plus、config、data)等,需要考虑到浏览器端,需要编译到e2e目录中 -->