使用具有密钥的 JSON 数据,例如“性别”,可以有多个可能的有效值,如何使用带有嵌入表达式的数据驱动 JSON 文件来测试它。
例如,JSON 文件可以有:
{
"name": "Joe Jones",
"gender": "male"
}
或
{
"name": "Mary Jones",
"gender": "female"
}
我想检查性别值是否有效,即“男性”或“女性”。
我已经尝试过这个(及其变体)但无法让它工作(或找出正确的语法):
{
"name": "#string",
"gender": "# _ ^* ['male','female']"
}
但这使它认为它正在尝试将字符串(来自原始 JSON)与数组匹配。我只需要确保字符串值与数组中的一个(任何)元素匹配,尽管它本身不是数组元素。
这应该可以解决问题:
* def genders = ['male', 'female']
* def response = { "name": "John", "gender": "male" }
* match response == { name: '#string', gender: '#? genders.includes(_)' }