将所有 Behat WebAPIExtension 步骤定义转换为 Node.js,并打包在 Webship-JS 中
发布: (2025年12月2日 GMT+8 19:27)
2 min read
原文: Dev.to
Source: Dev.to
Behat 的 WebAPIExtension 是一种使用 Gherkin 步骤测试基于 JSON 的 API 的简洁且高效的方式。2025 年 7 月 14 日,该仓库被所有者归档并设为只读,这意味着它不再维护,但并未被抛弃。
在 Webship.co,我们看到了该扩展结构化 API 测试方法的巨大价值。我们没有让它就此消失,而是将所有步骤定义全部重写为 Node.js,并直接集成到 Webship‑JS 中。
为什么值得复活 WebAPIExtension
- 让 API 测试可读且易于理解。
- 支持设置请求头、发送 JSON 请求体、检查状态码以及验证响应。
- 帮助团队以简洁的 Given / When / Then 格式描述 API 行为。
我们保留了所有这些优势,并对其进行了增强。
Webship‑js 的新特性
我们重建的 API 步骤现在支持:
- 设置请求头和请求体
- 发送所有 HTTP 方法(GET、POST、PUT、DELETE 等)
- 验证状态码
- 匹配 JSON 响应,包括嵌套字段
- 检查响应头
- 使用匹配器模式(正则、数组长度、JWT 等)
示例
When I send a POST request to "/users" with values:
| name | John Doe |
| email | john@example.com |
| age | 30 |
完整的步骤文档请参见此处:
https://webship.co/docs/webship-js/1.0.x/api-step-definitions
结论
虽然原始的 WebAPIExtension 已经归档,但其价值仍在延续。
通过我们的 Node.js 重构,Webship‑JS 将其重新带回——更简洁、更快速,并且积极维护。提供相同熟悉的 BDD API 体验,只是更加现代化,已准备好用于今天的真实项目。