首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用Resteasy的服务器端模拟框架制作Http-Put或Http-Post

用Resteasy的服务器端模拟框架制作Http-Put或Http-Post
EN

Stack Overflow用户
提问于 2012-10-19 22:11:25
回答 1查看 4.6K关注 0票数 3

我写了一个Rest-Service,我想测试一下。我想在不运行服务器的情况下运行JUnit测试。为此,我使用了RestEasy的服务器端模拟框架。

我的问题是,如何使用此框架在Http-Body中使用编组Java对象发出Http-Put或Http-Post请求?

下面的代码可以很好地运行Http-Get,但是如何创建一个Put或Post,也许有人得到了一些示例代码?

代码语言:javascript
复制
@Test
public void testClient() throws Exception {

    Dispatcher dispatcher = MockDispatcherFactory.createDispatcher();

    POJOResourceFactory noDefaults = new POJOResourceFactory(
            MyClass.class);
    dispatcher.getRegistry().addResourceFactory(noDefaults);

    {
        MockHttpRequest request = MockHttpRequest.get("/message/test/"
                + requestParam);
        MockHttpResponse response = new MockHttpResponse();

        dispatcher.invoke(request, response);
        assertEquals(HttpServletResponse.SC_OK, response.getStatus());

    }
}
EN

回答 1

Stack Overflow用户

发布于 2013-08-07 21:48:25

回应有点晚,但对某些人来说可能会有一些用处。这是我通常测试PUT请求的方式。希望能有所帮助

代码语言:javascript
复制
@Test
public void testPUT() throws Exception {      
      POJOResourceFactory noDefaults = new POJOResourceFactory(REST.class);

      Dispatcher dispatcher = MockDispatcherFactory.createDispatcher();
      dispatcher.getRegistry().addResourceFactory(noDefaults);

      String url = "your_url_here";   

      MockHttpRequest request = MockHttpRequest.put(url);
      request.accept(MediaType.APPLICATION_JSON);
      request.contentType(MediaType.APPLICATION_JSON_TYPE);
      // res being your resource object
      request.content(res.toJSONString().getBytes());

      MockHttpResponse response = new MockHttpResponse();
      dispatcher.invoke(request, response);

    Assert.assertEquals( HttpStatus.SC_CREATED,response.getStatus());

}
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12976102

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档