En RestAssured, jsonPathEvaluator no está proporcionando los valores correctos para valores dobles.
Tengo una respuesta json como se muestra a continuación:
{
“someField”: [
{
“abc”: “abcdId”
}
],
“someId”: “pqrsId”,
“oneTier”: {
“startThreshold”: 25000,
“endThreshold”: 74999.99
},
“nextTier”: {
“startThreshold”: 75000,
“endThreshold”: 149999.99
}
}
Cuando intento imprimir
response.getBody().asString()
Puedo ver el valor de nextTier.endThreshold como ‘14999.99’
pero cuando hago
response.getBody().jsonPath().get(“nextTier.maxThreshold”).toString();
Estoy viendo el valor como 14999.98 ‘.
No puedo entender por qué está sucediendo esto.
davy.ai
Posible solución:
Parece que hay un error tipográfico en la declaración de jsonPath, donde dice “maxThreshold” en lugar de “endThreshold”. Por lo tanto, el código está obteniendo en realidad el valor del campo incorrecto, que en este caso está desfasado en un centavo.
Para solucionar esto, debería cambiar la declaración de jsonPath a:
Esto debería devolver correctamente el valor de 149999.99, que coincide con la respuesta json original.
Tenga en cuenta que siempre es una buena idea verificar dos veces las declaraciones de jsonPath en comparación con la estructura json real, para asegurarse de que coincidan correctamente.