在Karate DSL中,如何将替换文本用于其他数据类型,如int,float,Big等?

时间:2017-10-17 22:49:51

标签: json rest cucumber karate

我在github上找到了以下示例。

  • def text ='hello world bye'

  • 替换文字 |令牌|价值| |一个| '残忍'| |两个| 'good'|

  • 匹配文字=='你好残酷的世界再见'

什么如果我要替换的值只能接受整数或其他数据类型?例如,

  • 替换文字 |令牌|值| |小时| 90 | |价格| 123.45 | |数量| 999999999999 |

我无法将令牌放在另一个文件中,因为json验证器不喜欢<>没有双引号。有什么建议?

1 个答案:

答案 0 :(得分:2)

替换是针对非JSON的文本,请仔细阅读文档。首先,数字没有问题并替换:

* def text = 'hello <name> how many <hours>'
* replace text
    | token  | value    |
    | name   | 'John'   |
    | hours  | 200      |
* match text == 'hello John how many 200'

现在,如果您尝试使用JSON,只需使用set关键字。

* def json = { hello: '', hours: null }
* set json
    | path   | value    |
    | hello  | 'John'   |
    | hours  | 200      |
* match json == { hello: 'John', hours: 200 }

请注意,即使省略第一行,上述内容仍然有效。另请参阅嵌入式表达式作为替换JSON中的值的另一种方法,请参阅doc。