测试

Hypit 使用 Node.js 内置测试运行器(node:test),而不是 Jest、Vitest 或 Mocha。

运行测试

pnpm test   # 包测试 + 边界测试

测试文件位于 packages//test/,扩展名 .test.ts,由 packages/*/test/**/*.test.ts 这个 glob 发现。

写一个测试

import assert from "node:assert/strict";
import { describe, test } from "node:test";
import { someFunction } from "@hypit/example";

describe("someFunction", () => {
  test("returns the expected result", () => {
    const result = someFunction(input);
    assert.deepStrictEqual(result, expected);
  });
});

准入规则

一个测试应当属于它验证的那一层:值解码与默认值、Surface 输入解析、Fragment 依赖、Producer 计算分别测各自的边界;需要真实生成的测试应当用环境开关隔离,避免每次改动都消耗额度。

FAQ

能测试真实渲染吗?

可以,但要用环境开关隔离,默认不跑。

必须用 node:test 吗?

仓库内一致使用它;项目扩展可以自选,但跟随仓库能共用配置。

边界测试是什么?

检查包之间没有越界引用(例如组件直接引用运行时实现)。

继续阅读