我希望通过在架构断言中添加变量来匹配我的响应。我通过给出'#(value)'来尝试它,但它不起作用
* def value = 3
Then match object ==
{
result : {
'#(value)'
{
firstName : '#string',
lastName : '#string'
}
}
}
我得到的例外是'path $ .result。(#value)actual:null expected { firstName:'#string' lastName:'#string' ''
答案 0 :(得分:2)
您的JSON存在严重问题。你真的想尝试使用动态密钥吗?这是不可能的。
这是一个可以帮助你弄清楚你做错了什么的工作示例:
* def actual = { result: { value: 3, foo: { firstName: 'John', lastName: 'Smith' } } }
* def value = 3
Then match actual ==
"""
{
result : {
value: '#(value)',
foo: {
firstName : '#string',
lastName : '#string'
}
}
}
"""
(编辑:)看起来问的确是动态密钥,这是一个改变的例子:
* def actual = { result: { 3: { firstName: 'John', lastName: 'Smith' } } }
* def fun =
"""
function(key) {
var temp = { result: {} };
temp.result[key] = { firstName: '#string', lastName: '#string' };
return temp;
}
"""
Then match actual == fun(3)