RestEasy客户端无法使用@PathParam参数

时间:2017-01-03 19:33:39

标签: java rest testing junit resteasy

尝试检查我的@GET方法时,我的测试失败了。

方法:

@GET
@Path("{eventId}")
public Response getEvent(@PathParam("eventId") String eventId){
    return Response.ok(this.event.getEventFromId(eventId)).build();
}

测试:

@Test
@InSequence(11)
@Header(name = "Authorization", value = "Basic cGFibG86cGFibG9wYWJsbw==")
@RunAsClient
public void testGetEventById(@ArquillianResteasyResource(BASE_PATH + "{eventId}") ResteasyWebTarget webTarget) {
    final Response response = webTarget.queryParam("eventId", "1").request().get();

    assertThat(response, hasOkStatus());

    final Event Event = EventType.readEntity(response);

    Assert.assertNotNull(Event);
}

如果我以这种方式放置方法,测试就可以了。

@GET
@Path("eventId")
public Response getEvent(){
    return Response.ok(this.event.getEventFromId("1")).build();
}

抱歉我的英语不好。 THKS

1 个答案:

答案 0 :(得分:0)

您可能对PathParam和Query Params感到困惑。 PathParam是url/{eventId}/... 查询参数在url?eventId=1的位置 当您编写return Response.ok(this.event.getEventFromId("1")).build(); }时,您实际上正在硬编码请求,因此任何请求总是使用1作为值,我认为这不是您想要的效果。