@aventara/testing
Aventara扩展的合规装置和测试设施。 测试适配器或运输主机 外边.
createFakeAdapter: 用于测试运行一个AvFramework没有数据库.runAvProtocolConformance(driver): 驱动协议程序( $AvProtocolFixtures通过一个东道主和报告, 每行,每与预期状态,代码,原因,头和身体不匹配. 一个主机供应aAvProtocolDriver: 给定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。 。 。 .