2016-08-06 2 views
0

У меня есть требование обмануть вызов webservice. Здесь вместо фактического вызова webservice на фиктивный сервер и сервер должен ответить на мой ответный файл ответов xml из локального каталога.Могу ли я высмеивать SOAP и отдыхает webservice reponses с файловым потоком из local directiry

+0

Если вы используете его для модульного тестирования, см [это] (https://github.com/skjolber/mockito-soap-cxf) JUnit Rule проект я просто мириться. – ThomasRS

ответ

0

Наш проект использовал этот подход (используемый для издевательских внешних веб-сервисов, которые не были доступны в локальной рабочей области).

Короткий ответ: да, но как реализовать будет зависеть от вашего кода.

Сначала мы создали интерфейс для вызова webservice, чтобы мы могли создать 2 реализации, одну актуальную (которая вызывает внешнюю службу) и один тест (который вызывает внутренний WebService, который читает из файла).

Далее мы создали тестовый веб-сервис, который мы размещали на том же сервере. Теперь логика была простой. На основании ввода мы использовали для чтения правильный ответ из файла. Вы можете построить любую логику, которую вы хотите, наша инфраструктура была разработана для поддержки нескольких веб-сервисов. Наконец, в нашем коде, вроде пружины, мы использовали для проверки сервиса (через интерфейс) вместо фактического обслуживания. Поэтому мы могли читать из файла и предоставлять ответ. Когда был доступен внешний интерфейс, мы просто переключали конфигурацию, и мы были хорошими.

Конечно, это упрощение, но я надеюсь, что вы получите суть.

0

У вас есть два способа производства:

  • дразнят WS со стороны клиента, обеспечивая высмеивал реализацию клиента WS.
  • mock the ws со стороны сервера, создавая насмешливый экземпляр ws.

Дразнящий вызов со стороны клиента просто. Вы создаете общий интерфейс с помощью методов ws, которые вы хотите вызвать. И вы создаете две реализации этого. Один с эффективным вызовом ws и другим с зашифрованными ответами, поступающими из локальных файлов.


Стыковка или имитация ws со стороны сервера не так уж сложна, но это не тот же подход. Вы можете жестко закодировать его, но это не безопасное решение, когда вы должны снова его издеваться. Вы также можете использовать симулятор webservice вместо своего веб-сервиса. Вы не будете запрашивать у вас вебсервис, а другой.

SOAPUi может помочь вам в достижении этой задачи, высмеивая ваши ответы на веб-сервисы.
Example for SOAP mocking

Чтобы использовать локальный файл в качестве ответа, вы должны использовать SOAPUI-скрипт ответа.
SOAP reponse mocking

Смежные вопросы