насмешливый веб-сервис

#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 — это инструмент с открытым исходным кодом, созданный для тестирования веб-сервисов, и он очень хорошо поддерживает макетирование сервисов. Ознакомьтесь с этим руководством о том, как это сделать.