2017-01-03 1 views
0

Mon test échoue lorsque j'essaie de vérifier ma méthode @GET.Le client RestEasy ne peut pas utiliser l'argument @PathParam

La méthode:

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

Le test:

@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); 
} 

Si je mets la méthode de cette façon, les travaux d'essai.

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

Désolé pour mon mauvais anglais. Thks

+0

On dirait que vous ajoutez "paramètre URL" plutôt que "Path Paramter" lorsque vous utilisez 'webTarget.queryParam' –

Répondre

0

Vous avez peut-être confondu PathParam et Query Params. PathParam is url/{eventId}/... Où paramètre de requête est url?eventId=1 Lorsque vous écrivez return Response.ok(this.event.getEventFromId("1")).build(); } vous êtes en cours de codage en dur la demande de sorte que toute demande utiliserait toujours 1 comme valeur, je ne pense pas que ce soit votre effet désiré.