@aventara/testing

中文文档
1.0.0-rc.12发布于 2026/11/01SEE LICENSE IN LICENSETypeScriptES Module近 30 天下载 2408

Aventara的合规和推广测试设施.

中文使用文档
文档目录5 节
  1. 安装
  2. 通过你自己的堆栈来提供人体保护
  3. 尸体作为JSON
  4. 文档
  5. 许可证

@aventara/testing

Aventara扩展的合规装置和测试设施。 测试适配器或运输主机 外边.

  • createFakeAdapter: 用于测试运行一个 AvFramework 没有数据库.
  • runAvProtocolConformance(driver): 驱动协议程序( $AvProtocolFixtures通过一个东道主和报告, 每行,每与预期状态,代码,原因,头和身体不匹配. 一个主机供应a AvProtocolDriver: 给定 AvFramework,会话发送一个协议请求并返回答案,然后关闭.
  • AvProtocolCorpus: 元件的服务器侧面,用于通过自己的客户端或主机(下方)服务.
  • @aventara/testing/fixtures/protocol-v1.json: 与普通JSON相同的程序,用于客户端或主机在任何 语言(以下).

这取决于 @aventara/core 只有这个.

安装

npm install --save-dev @aventara/testing@rc

节点 ^22.23.4 || >=24.22.1. ES模块.

通过你自己的堆栈来提供人体保护

runAvProtocolConformance 构建元件 AvFramework 自己来 为了从一个主机或测试台上服务, 例如,要指向您所写的客户端,请从 AvProtocolCorpus数字 :

import { AvProtocolCorpus, AvProtocolFixtures } from "@aventara/testing";

const framework = await AvProtocolCorpus.framework();
// Mount `framework` under AvProtocolCorpus.entrypoint ("/api") with your host,
// then send each row's `request` and compare the answer with the row's `server`.
  • framework(contractHash?): 一个新体 AvFramework,辅以内相适配器,每行答案 各州。 传一行 Aventara-Contract-Hash 以获得该行目标的合同(缓存读取 GET 不发送 这样的页眉 : 通过它的查询 v) (中文(简体) ). 几行以没有交易的合同为目标 /_access/can 第1行 : 与 access,而缓存读取的一行 cache 阶段; 所有其他散列(包括一个已过时的)获得 主合同.
  • entrypoint: 装有炸弹的地方; 每行 path 这是相对的.
  • clientContractHash:主要客户合同散列. 一个客户端生成了它 发送这种散列 GET /_contract 说吧.

排队的 client.outcome 实值 "transport-error" 描述一个没有主机生成的答案( 代理服务器的 HTML 页面, a) 已丢弃的连接); 服务时跳过它, 如符合运行那样 。 一行货 adapterCalls 计算操作 自动调试器已经交出,只有符合操作才能观察.

尸体作为JSON

@aventara/testing/fixtures/protocol-v1.json 1号协议版本的完整文件 它产生于 AvProtocolFixtures 当软件包建成时,每行的顺序和字段相同,所以客户端 或用另一种语言写成的主机可以持有相同的答案:

{
  "protocolVersion": 1,
  "entrypoint": "/api",
  "clientContractHash": "sha256:…",
  "contracts": [{ "hash": "sha256:…", "document": "{\"enums\":{},…}" }, …],
  "rows": [{ "label": "…", "request": { … }, "server": { … }, "client": { … } }, …]
}
  • contracts:每个客户订约一行目标:其散列及其精确度 GET /_contract 字节( e)document页:1 字符串). 第一个是主合同, clientContractHash; 一行通过发送其散列( 缓存) 来瞄准另一行 读取 GET 作为它的查询 v) (中文(简体) ).
  • rows: 作为 AvProtocolFixture 描述他们。 缓存读取 request 携带其 query (无 ?A级 流线 POST /_all 答复(Accept: application/x-ndjson无信封:其行 code 实值 null 联 合 国 bodyBytes 依序排列。 一具尸体太大,写不出来(1个小米B请求上一个字节) 限制:其 request.body.content 是一种秘方, { "prefix": "…", "repeat": "x", "times": 1048567, "suffix": "…" }, (中文(简体) ), 备注 prefix + 键 repeat 重复 times 乘数 + suffix。 所有其他 content 是身体的文本.

从 Java 脚本 : require("@aventara/testing/fixtures/protocol-v1.json"),或 import 这个 with { type: "json" }。 。 。 .

文档

@aventara/core'README'是在哪里开始的(框架,它的适配器和主机). @aventara/nest 被持有于此 在自己的测试中快速化。 每个包裹的README飞船在它的柏油球并显示在它的npm页面上.

许可证

PolyForm盾 1.0.0 附加许可. 它可以自由使用,包括商业应用,但你 可能不会用来制造一种与阿文塔拉本身竞争的产品. 见 LICENSE 财务报告和审定财务报表 LICENSE-ADDITIONAL-PERMISSION.md。 。 。 .

版本与发布记录

@aventara/testing 共发布 16 个版本,首次发布于 2026/10/06;过去 12 个月发布了 16 个版本。

版本发布日期距今
1.0.0-rc.12latest2026/11/016 天前
1.0.0-rc.112026/10/317 天前
1.0.0-rc.102026/10/2711 天前
1.0.0-rc.92026/10/2315 天前
1.0.0-rc.82026/10/2216 天前
1.0.0-rc.42026/10/2117 天前

其他发布通道:pilot → 0.1.0-pilot.4。

关于 @aventara/testing 的常见问题

@aventara/testing 是什么?

Aventara的合规和推广测试设施.

如何安装 @aventara/testing?

在项目目录运行 npm install @aventara/testing,或使用 pnpm add / yarn add / bun add。

@aventara/testing 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@aventara/testing 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@aventara/testing 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js ^22.23.4 || >=24.22.1。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@aventara/testing 可以商用吗?

@aventara/testing 使用 SEE LICENSE IN LICENSE 许可。许可条款写在包内的独立文件中,请阅读该文件确认可否商用。以上为概括,不构成法律意见,请以许可原文为准。

@aventara/testing 的下载量有多少?

根据 npm 官方下载统计,@aventara/testing 在 2026/10/07 – 2026/11/05 这 30 天内被下载 2,408 次,日均约 80 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@aventara/testing 还在维护吗?

最新版本 1.0.0-rc.12 发布于 2026/11/01(6 天前);至今共发布 16 个版本,其中过去 12 个月发布了 16 个;首次发布于 2026/10/06。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。