首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Dredd -如何根据http状态码修改测试结果?

Dredd -如何根据http状态码修改测试结果?
EN

Stack Overflow用户
提问于 2019-10-25 20:48:43
回答 1查看 148关注 0票数 1

我正在开发一个应用程序接口,使用apiary.io和Swagger。我想使用dredd测试API,对于正常的API响应(HTTP状态代码200)来说,这是很好的。但是,当API根据参数(例如403)返回不同的状态码时,dredd会报告测试失败。我想用一条可选的日志记录消息将测试标记为成功。

我试过了:

代码语言:javascript
复制
hooks.afterEach(function(transaction){
    if (transaction.real){
        switch (transaction.real.statusCode){
            case "400":
            case "403":
            case "406":
                transaction.fail=false;
                hooks.log('Failed, but expected by the API');
        }
    }
});

但是,这不起作用,测试仍然被标记为失败。我遗漏了什么?

EN

回答 1

Stack Overflow用户

发布于 2019-10-25 21:17:30

您的接口描述文档是OAS3格式的吗?您可能正在经历this issue。Dredd应该在OAS2的情况下自动将非2xx的情况标记为跳过,但它还没有为OAS3这样做,对该格式的支持仍处于实验阶段。

一种解决方法是在之前的钩子中将事务设置为跳过自己:

代码语言:javascript
复制
hooks.beforeEach(function(transaction){
    if (transaction.real){
        switch (transaction.real.statusCode){
            case "400":
            case "403":
            case "406":
                transaction.skip = true;
        }
    }
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58558840

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档