问题标签 [dredd]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
openapi - 使用 Dredd 测试错误响应的最佳实践是什么?
我想用 openapi 3 描述我现有的 API,并用 dredd 证明我的描述。我知道 openapi 3 实现是实验性的,但我不使用任何尚不支持的元素。
这是我的 spec.yaml 的一部分
...
所以我可以测试正确输入凭据的情况(假设测试用户在那里),因为它们在规范中作为示例给出。但是错误案例呢?当然我可以在 hooks.js 文件中跳过它们:
注意:在我的情况下,可能是由于使用了 openapi 3,Dredd 的行为与这里所说的相矛盾:错误响应不会自动跳过。
但这是可取的吗?我也更愿意测试正确的错误反应。但是怎么做?我怀疑它现在是否受支持,但至少在理论上我可以在规范中插入多个示例,从而也包括导致错误的示例。但另一方面,任意错误的示例不会包含在文档中,不是吗?
这里的最佳做法是什么?
apiary.io - Dredd - 如何根据 http 状态码修改测试结果?
我正在使用 apiary.io 和 Swagger 开发一个 API。我想使用 dredd 测试 API,对于正常的 API 响应(HTTP 状态代码 200),这很好。但是,当 API 根据参数返回不同的状态码(例如 403)时,dredd 会报告测试失败。我想将测试标记为成功,并带有可选的日志消息。
我试过这个:
然而这不起作用,测试仍然被标记为失败。我错过了什么?
python - 替换路径dredd钩子中的ID
我有这个 dredd.yml 配置文件:
我想{id}
用 python dredd 钩子替换路径。我试过这样:
测试执行成功,但只有 1 个 id。第一个操作的答案输出一个包含对象的列表,其中 id 在 ['id'] 中。如何替换{id}
路径并对所有网络进行测试?
openapi - Openapi3 和 CSV 响应(用于 Dredd)
我用 DREDD 对照它的规范测试我的 Api(考虑到用 Openapi3 编写,考虑到 Dredd 支持的痛苦限制)。不,我有一个端点,如果设置了 Accept-header,它会生成 CSV 数据。
当我使用 Dredd 运行测试时,测试失败
显然有些地方被误解了,Dredd 期望仍然是 JSON。此外,API 没有被告知生成 CSV 版本。如果我在代码 abvoe 中的 Accept 标头中提交,我会得到完全相同的结果 - 上面的预期结果和实际结果是 my-endpoint-data 的 JSON 版本以及广告警告:
我在这里和这里读到:Header parameters named Accept, Content-Type and Authorization are not allowed. To describe these headers, use the corresponding OpenAPI keywords
-但它们是什么?根据this和this page,指定给定类型的响应似乎就足够了,但这显然不足以告诉Dredd产生这样的标题。
loopbackjs - 根据 Loopback 4 中 API 的后端实现验证 openapi 3.0 API 描述
我尝试了 Dredd,但它不适用于由 Loopback 4 框架生成的 openapi spec 3.0。
我想知道哪些选项可用于此类测试,我想根据 API 的后端实现来验证 openapi 3.0 API 描述。
提供类似功能但适用于 openapi 3.0 的 Dredd 的任何替代方案?
swagger - 与 Dredd 进行合同测试时出现 Int32 错误
我有一个使用 Swagger2 的应用程序。这有一个端点,它具有以下招摇文档:
这会从我整个项目的注释中自动生成。
在运行我的 Dredd 合同测试时,我收到以下错误消息:
我的dredd.yml
文件指向自动生成的文件,但如果我将其更改为指向手动创建json
的文件,该文件与上面显示的文件相同,但resultCount
部分如下所示:
然后我的测试将通过。
我正在使用这样的 springfox 注释生成这个招摇文档:
我想要做的是有某种注释,导致 swagger2 在没有"format": "int32"
似乎导致测试失败的行的情况下生成文档。
我认为这不是 Dredd 的问题,而是我不知道如何在 Swagger 中表达我想要的问题。任何想法如何解决这个问题?我需要使用某个注释吗?
swagger - dredd 无法运行并出现错误“数据与“anyOf”中的任何模式不匹配等等
试图在 swagger 文档上运行 dredd。Dredd 失败并出现下一个错误:
错误指的是 JSON 的这一部分:
gist提供完整的 JSON 。Swagger-ui 可以完美地使用这个 JSON,手动测试通过,正如预期的那样。
swagger - Grape Swagger 不显示示例参数
我正在使用grape-swagger gem 为dredd 制作swagger 文档。
我有这样的参数:
Grape swagger 忽略示例参数。
而不是这个:
我懂了:
如何发送示例值用于测试目的?
go - 当 SIGTERM 触发时停止 main.go
触发 SIGTERM 事件时,我无法退出我的 main.go 应用程序。
switch 语句中的 SIGTERM 情况不会被调用,并且“触发”不会被打印出来。
这是我的代码
我尝试了以下解决方案,但无法正常工作。
yaml - 如何在 OpenAPI3-YAML 规范中编写 BOM 字符
在我的 API 的 OpenApi3 规范中,我有一个返回 CSV 数据的端点。不,我的 Dredd-Test 失败,尽管示例和返回的结果完全相同。我假设我的 API 返回带有 BOM 字符的 CSV 的问题。
现在我不知道如何在 OpenAPI3-YAML 中正确编码字符。谁能帮我吗?
我像在 JSON 中那样尝试过\ufeff
,但它没有用。