首页 > 解决方案 > 如何用 swagger 和 dredd 测试错误代码?

问题描述

知道如何使用 Dredd 结合 swagger .yaml 文件测试其余 api 错误代码吗?

是否有最佳实践如何测试路径的所有不同错误?

例子:

Path /task/{id} can have 3 type of responses: 
200 -> OK
404 -> Task not found 
403 -> Forbidden(not your task)

是否可以使用 swagger / dredd 测试这条路径的所有 3 个“工作流程”?

标签: restswaggerswagger-2.0dredd

解决方案


使用hooks是可能的。请参阅Dredd 文档中的选择 HTTP 事务多个请求和响应部分:

当使用 OpenAPI 2 格式时,默认情况下 Dredd 只测试带有2xx状态码的响应。带有其他代码的响应被标记为已跳过,可以在钩子中激活:

var hooks = require('hooks');

hooks.before('/resource > GET > 500 > application/json', function (transaction, done) {
  transaction.skip = false;
  done();
});

推荐阅读