У меня есть служба, которая возвращает следующие данные JSON:
{
"location-details": {
"fromPostalCode": "1508XB",
"fromGeoCoordinates": "116532,496398",
"toPostalCode": "1511MA",
"toGeoCoordinates": "120427,493380"
},
"commute-distance": "5817.799",
"commute-time": "370.0152"
}
Я создал набор тестов MUNIT для того же приложения, где я использую утилиту assert that для подтверждения полезной нагрузки. Фрагмент приведен ниже:
<munit:validation >
<munit-tools:assert-that doc:name="Assert That Status Code is 200" doc:id="1c2e536b-513e-4b76-958b-2ea864a64805" expression="#[attributes.statusCode]" is="#[MunitTools::equalTo(200)]" message="The HTTP Status code is not correct!" />
<munit-tools:assert-that doc:name="Assert That - Payload is Expected" doc:id="f4b811fa-ff11-4746-93cc-f87576504808" expression="#[payload]" is="#[MunitTools::getResourceAsString('SuccessResponse.json')]" message="The response payload is not correct!"/>
</munit:validation>
Но это выдает ошибку ниже, и она не работает:
...38 more
Caused by: org.mule.runtime.api.el.ExpressionExecutionException: Unable to convert '{
"location-details": {
"fromPostalCode": "1508XB",
"fromGeoCoordinates": "116532,496398",
"toPostalCode": "1511MA",
"toGeoCoordinates": "120427,493380"
},
"commute-distance": "5817.799",
"commute-time": "370.0152"
}' with class 'java.lang.String' to class 'Matcher', while writing Java at org.mule.munit.tools.util.GetResourceFunctions.getResourceAsString.
at org.mule.weave.v2.el.WeaveExpressionLanguage.doEvaluate(WeaveExpressionLanguage.scala:139)
at org.mule.weave.v2.el.WeaveExpressionLanguage.evaluate(WeaveExpressionLanguage.scala:236)