Как макетировать весь сеанс связи JAX-RPC?

У меня есть устаревшее приложение, которое работает со сторонним веб-сервисом через JAX-RPC. Теперь мне нужно выполнить модульное тестирование приложения, имитируя определенные вызовы XML RPC с тестовыми данными. На самом деле мне нужно заменить Apache Axis, который используется приложением, на какую-то другую библиотеку, которая будет JAX-RPC-совместимой, но вернет то, что я говорю, чтобы она возвращалась. Я почти уверен, что не одинок с такой проблемой... Есть ли для этого библиотеки с открытым исходным кодом?

3 ответа

У меня был некоторый успех с WireMock. Это сервер Jetty, который вы настроили программно для ответа на определенные шаблоны запросов с указанным вами содержимым. Я смог настроить его так, чтобы он отвечал на запросы XML-RPC из моего класса. Например,

stubFor(post(urlEqualTo("/RPC2"))
        .withRequestBody(containing("<methodName>...</methodName>"))
        .willReturn(aResponse()
            .withBody("<methodResponse>...</methodResponse>")));

Вы можете сделать это с помощью Spring Framework и EasyMock.

Какой лучший макет фреймворка для Java?

Для прослушивания звонков на внешние сервисы вы можете использовать EasyMock+Powermock или же Mockitoвы можете сделать что-то вроде этого

Easymock.expect(your function calling external Systems).andReturn(your required output)

надеюсь это поможет!

Удачи!

Другие вопросы по тегам