#java #easymock #jmock
#java #easymock #jmock
Вопрос:
Я хотел бы имитировать вызов веб-службы для тестирования моего кода. Ниже приведен фрагмент кода, над которым я хочу поиздеваться. Я хотел бы протестировать метод callWebService(). Мне нужен способ создать свой собственный HttpResponse при вызове callRestClientService(критерии). Я пытался использовать JMock и EasyMock, но не смог получить желаемый результат. В первом случае я считаю, что я не смогу издеваться или создавать свой собственный HttpResponse .
Даже если я не могу имитировать вызов шлюза, у меня уже есть локальный сервер, на который я могу позвонить, но мне пришлось бы имитировать ответ, отправленный сервером, чтобы протестировать разные сценарии.
Кто-нибудь может мне помочь с этим…. Спасибо!!
public class RestClientServiceResponse
{
public HttpResponse callRestClientService(final RestClientServiceCriteria criteria) throws IOException
{
final HttpUriRequest request = buildHttpUriRequest(criteria);
return executeRestClientServiceCall(request);
}
public HttpResponse executeRestClientServiceCall(final HttpUriRequest request) throws IOException
{
final HttpClient client = new DefaultHttpClient();
final HttpResponse httpResponse = client.execute(request);
return httpResponse;
}
}
public class CallWebService
{
public void callWebService()
{
HttpResponse httpResponse = null;
try
{
httpResponse = restClient.callRestClientService(criteria);
}
catch (final Exception e)
{
System.out.println(e);
}
}
}
Комментарии:
1. Вы говорите: «Я пытался использовать JMock и EasyMock, но не смог получить желаемый результат», не могли бы вы опубликовать то, что вы пробовали? Чтобы дать нам что-то для работы.
Ответ №1:
Если я вас правильно понимаю, просто используйте что-то вроде встроенного Jetty или простого HTTP-сервера. Я склонен использовать Simple, потому что у него, как правило, лучшая документация. Вы можете очень легко настроить его так, чтобы он возвращал все, что вы хотите для теста. В зависимости от требуемой сложности вы можете даже встроить макет внутри сервера, что позволит вам выполнять обычные операции над макетом, которые преобразуются в проверку HTTP-запросов и подготовку HTTP-ответов.
Ответ №2:
SoapUI — это инструмент с открытым исходным кодом, созданный для тестирования веб-сервисов, и он очень хорошо поддерживает макетирование сервисов. Ознакомьтесь с этим руководством о том, как это сделать.