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