带有嵌入表达式的数据模板,用于匹配多个字符串值

问题描述 投票:0回答:1

使用具有密钥的 JSON 数据,例如“性别”,可以有多个可能的有效值,如何使用带有嵌入表达式的数据驱动 JSON 文件来测试它。

例如,JSON 文件可以有:

{
  "name": "Joe Jones",
  "gender": "male"
}

{
  "name": "Mary Jones",
  "gender": "female"
}

我想检查性别值是否有效,即“男性”或“女性”。

我已经尝试过这个(及其变体)但无法让它工作(或找出正确的语法):

{
  "name": "#string",
  "gender": "# _ ^* ['male','female']"
}

但这使它认为它正在尝试将字符串(来自原始 JSON)与数组匹配。我只需要确保字符串值与数组中的一个(任何)元素匹配,尽管它本身不是数组元素。

karate
1个回答
0
投票

这应该可以解决问题:

* def genders = ['male', 'female']
* def response = { "name": "John", "gender": "male" }
* match response == { name: '#string', gender: '#? genders.includes(_)' }

另请参阅:https://stackoverflow.com/a/77851131/143475

© www.soinside.com 2019 - 2024. All rights reserved.