# @aventara/testing 中文文档

规范地址：https://npmcn.com/package/%40aventara/testing/

版本：1\.0\.0-rc\.12
npm 元数据更新时间：2026-10-31T20:56:17.418Z
中文译文更新时间：2026-11-07T07:55:42.621Z
软件包许可：SEE LICENSE IN LICENSE

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40aventara/testing
原文对照：https://npmcn.com/package/%40aventara/testing/?lang=original

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：350 kB，30 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- Node.js 要求：^22\.23\.4 \|\| \>=24\.22\.1
- 运行依赖：1 个
- 首次发布：2026-10-06T15:22:28.630Z
- 最新版本发布：2026-10-31T20:56:17.248Z
- 近 30 天下载量：2408（2026-10-07 至 2026-11-05，npm 官方下载统计）
- 已发布版本数：16（近 12 个月 16 个）

## 中文简介

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

## 安装

```sh
npm install @aventara/testing
```

也可以使用：`pnpm add @aventara/testing`、`yarn add @aventara/testing`、`bun add @aventara/testing`

## README

# `@aventara/testing`

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

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

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

## 安装

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

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

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

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

```ts
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` 当软件包建成时,每行的顺序和字段相同,所以客户端 或用另一种语言写成的主机可以持有相同的答案:

```json
{
  "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 是什么？

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 和提交记录判断。

