2011-09-30 125 views
0

我想嘲笑一个web服务调用来测试我的代码。 以下是我想要模拟的代码片段。 我想测试callWebService()方法。我想在调用callRestClientService(条件)时创建自己的HttpResponse。我尝试使用JMock和EasyMock,但无法获得所需的结果。首先,我相信我将无法模拟或创建自己的HttpResponse。嘲笑web服务

即使我不能模拟网关呼叫,我已经有一个本地服务器可以拨打到,但我必须嘲笑服务器发送的回复来测试不同的场景。

任何人都可以帮助我这个.... 谢谢!

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); 
     } 
    } 
} 
+5

你说:“我尝试使用JMock和EasyMock,但无法获得所需的结果”,你可以发布你已经尝试过吗?给我们一些工作。 –

回答

0

如果我理解你的权利,只要使用类似嵌入式JettySimple HTTP服务器。我倾向于使用Simple,因为它通常具有更好的文档。你可以很容易地设置它返回任何你想要的测试。根据您所需的复杂性,您甚至可以在服务器中嵌入一个模拟器,让您对模拟执行正常的模拟操作,将其转换为验证HTTP请求并准备HTTP响应。

0

SoapUI是一个开源工具,用于测试Web服务,它支持非常好的服务模拟。请通过this tutorial了解如何操作。