Я пытаюсь смоделировать вызов мыла, который возвращает ноль в качестве ответа.
У меня есть класс java, где я звоню в веб-службы fedex, чтобы проверить проанализированный адрес. До сих пор все хорошо, но когда дело доходит до юнит-тестирования, возникает проблема.
В тесте я пытаюсь смоделировать вызов мыла, передавая те же параметры запроса, которые передаются в реальном java-классе, но имитатор возвращает ответ как нулевой, поскольку запрос, который я передаю, не совпадает с запросом мыла ожидая в классе Java.
Код класса Java (abc.java) -
SOAPMessage payload = getAddressRequestPayload();
SOAPMessage responseMessage = soapConnection.call(payload, settings.addressUrl());
Тестовый код (junit4) -
SOAPMessage testResponse = getMockResponse();
SOAPMessage testPayload = abc.getAddressRequestPayload();
when(mockSoapConnection.call(testPayload, settings.addressUrl())).thenReturn(testResponse);
Кроме того, я попытался получить полезную нагрузку запроса строки xml из класса java и добавить новую метку времени, используя fakeclock в тестовом классе, чтобы сопоставить обе полезные нагрузки, но, похоже, они разные.
Один из способов - дать общий класс soapmessage, когда call like -
when(mockSoapConnection.call(any(SOAPMessage.class), anyString())).thenReturn(testResponse)
Тогда тест проходит, но это не правильный способ проверки конкретного вызова. Так как мне узнать разницу между полезными нагрузками или есть какой-то другой способ подделать мыльный вызов ??
Любая помощь приветствуется.
Саурабй