当尝试比较 2 个不同的响应(源响应和实际响应)时,我们的代码中发生了需要考虑的转换,但我不确定如何执行此操作。
Array1 = ["从未连接","活动","从未连接"] 数组2 = ["N","A","N"]
虽然这些是相同的,但简单的匹配是行不通的。是否可以根据排序键转换其中一个数组?
convert A to ACTIVE, N to NEVER-CONNECTED, D to DISCONNECTEd. All other values are stored as is
这有效,但我不确定这是否是最优雅的方式 $aResponse.serviceability[*].connectionStatusCode 为:["N","A","N"] $bResponse.serviceability[*].connectionStatus 为:["从未连接","活动","从未连接"]
# Translation - convert A to ACTIVE, N to NEVER-CONNECTED, D to DISCONNECTEd. All other values are stored as is
* def connectionStatusCode = $aResponse.serviceabilities[*].connectionStatusCode
* if (printDebug) { karate.logger.debug('connectionStatusCode is: ', connectionStatusCode); }
* def conversion =
"""
function(x){
var value = '';
karate.log('x: ', x);
if (x == 'A') {value = 'ACTIVE'}
else if (x == 'D') {value = 'DISCONNECTEd'}
else if (x == 'N') {value = 'NEVER-CONNECTED'}
else {value = x}
return value;
}
"""
* def convertedConnectionStatusCode = karate.map(connectionStatusCode, conversion)
* match bResponse.serviceabilities[*].connectionStatus == convertedConnectionStatusCode