尝试检查@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();
}
对不起,我英语不好。厚度
1条答案
按热度按时间rks48beu1#
您可能混淆了pathparam和query params。路径参数为
url/{eventId}/...
其中query param是url?eventId=1
当你写作的时候return Response.ok(this.event.getEventFromId("1")).build(); }
你实际上是硬编码的请求,所以任何请求都会使用1作为一个值,我不认为这是你想要的效果。