首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >空手道匹配表达式

空手道匹配表达式
EN

Stack Overflow用户
提问于 2020-06-10 20:14:47
回答 1查看 87关注 0票数 1

我使用模式验证来验证响应,value返回一个数字或'NA‘,下面是响应和模式验证。

代码语言:javascript
复制
Response:
{
    "ID": "ES123D74590Z",
    "companyName": "ABC Corp",
    "hourMs": 67890000000,
    "date": "2020-06-09T00:00:00.000Z",
    "scores": {
        "AllScore": 61,
        "MaxScore": 59,
        "ScoreA": 75,
        "ScoreB": "NA",
        "ScoreC": 49,
        "ScoreD": "NA"
    },
    "movement": {},
    "amt": {}
}
代码语言:javascript
复制
Schema Assertion:
{
    "ID": '#string',
    "companyName": '#string',
    "hourMs": '#number',
    "date": '#regex[^\d\d\d\d-([0-9]{2})-([0-9]{2})(\T)([0-9]{3}):([0-9]{3}):([0-9]{3})\.[0-9]{3}\Z)$]',
    "scores": {
        "AllScore": '##number? _ >= 0 && _ <=100 || _ == "NA"',
        "MaxScore": '##number? _ >= 0 && _ <=100 || _ == "NA"',
        "ScoreA": '##number? _ >= 0 && _ <=100 || _ == "NA"',
        "ScoreB": '##number? _ >= 0 && _ <=100 || _ == "NA"',
        "ScoreC": '##number? _ >= 0 && _ <=100 || _ == "NA"',
        "ScoreD": '##number? _ >= 0 && _ <=100 || _ == "NA"'
    },
    "movement": {},
    "amt": {}
}

收到错误消息:

代码语言:javascript
复制
com.intuit.karate.exception.KarateException: score.feature:19 - path: $.scores.ScoreB, actual: 'NA', expected: '##number? _ >= 0 && _ <=100 || _ == "NA"', reason: not a number

如何更正匹配表达式?

EN

Stack Overflow用户

回答已采纳

发布于 2020-06-11 01:52:25

这就是你要的。试着在别人的帮助下检查你的代码。仔细阅读文档。下一次,像这样简化你的问题。

代码语言:javascript
复制
* def response =
"""
{
    "AllScore": 61,
    "MaxScore": 59,
    "ScoreA": 75,
    "ScoreB": "NA",
    "ScoreC": 49,
    "ScoreD": "NA"
}
"""
* def isNum = function(x){ if (x === 'NA') return true; return typeof x === 'number' }
* def schema =
"""
{
    "AllScore": '#? isNum(_)',
    "MaxScore": '#? isNum(_)',
    "ScoreA": '#? isNum(_)',
    "ScoreB": '#? isNum(_)',
    "ScoreC": '#? isNum(_)',
    "ScoreD": '#? isNum(_)'
}
"""
* match response == schema

另外,我建议您查看这个日期验证示例,以获得更多想法:https://stackoverflow.com/a/55938480/143475

票数 1
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62303338

复制
相关文章

相似问题

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