resteasy客户端不能使用@pathparam参数

gajydyqb  于 2021-07-12  发布在  Java
关注(0)|答案(1)|浏览(451)

尝试检查@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();
}

对不起,我英语不好。厚度

rks48beu

rks48beu1#

您可能混淆了pathparam和query params。路径参数为 url/{eventId}/... 其中query param是 url?eventId=1 当你写作的时候 return Response.ok(this.event.getEventFromId("1")).build(); } 你实际上是硬编码的请求,所以任何请求都会使用1作为一个值,我不认为这是你想要的效果。

相关问题