热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

空手道框架:如果响应为空,则#notnull和#present不起作用

如何解决《空手道框架:如果响应为空,则#notnull和#present不起作用》经验,为你挑选了1个好方法。

我的验证是验证天气orgId是否出现在响应中,并且该orgId应该包含一些值

我得到的响应是状态码200,响应主体为空。

现在我有下面的实现

Then match $.orgId == '#present'
Then match $.orgId == '#notnull'

在这种情况下,代码可以通过,理想情况下,它应该会失败,因为响应主体为空,并且响应中不存在orgId。我的问题是,为什么是代码获得通过与#present#notnull即使响应主体是空的



1> Peter Thomas..:

您肯定错过了一些东西。在全新的情况下尝试此操作,然后查看它是否有效。我们在response下面进行硬编码,这完全等同于运行时发生的事情,并且顺便说一句,这是您针对不同类型的JSON测试断言(无需进行任何HTTP调用)的一种好方法:

* def respOnse= {}
Then match $.orgId == '#present'
Then match $.orgId == '#notnull'

这给您带来了失败的期望:

assertion failed: path: $.orgId, actual: null, expected: '#present', reason: actual json-path does not exist

因此,如果您仍然遇到问题,请执行以下过程:https : //github.com/intuit/karate/wiki/How-to-Submit-an-Issue

编辑:如果您的响应是一个空字符串,但是您期望使用JSON,只需执行此操作,它将使测试失败,请参阅类型转换:https : //github.com/intuit/karate#type-conversion

* json respOnse= response

但是,正如文档中所述,您应该始终尝试匹配“完整JSON”,因此这应该可以工作:

* def respOnse= ''
Then match $ contains { orgId: '#notnull' }

编辑:这将在0.9.4 https://github.com/intuit/karate/issues/814中修复


推荐阅读
author-avatar
爱你王明英
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有