users@jersey.java.net

[Jersey] Re: Best Library to Unit Test Jersey Restful Web Services?

From: Aris Alexis <aris.alexis.gia_at_gmail.com>
Date: Tue, 9 Sep 2014 16:30:39 +0200

What I do is run the main application with Tomcat.

For testing I use JUnit and Jetty embedded. I start it up before the
testing and shut it down later.

some maybe helpful hints:

Client client = ClientBuilder.newClient().register(MoxyJsonFeature.class);
Response response =
client.target(hostname+"/users/"+otherUserId).request().header("Cookie",
getSessionId()).get();

        assertEquals(Response.Status.OK.getStatusCode(),
response.getStatus());

cheers

Best Regards,
Aris Giachnis

On Thu, Sep 4, 2014 at 10:45 AM, Vetle Leinonen-Roeim <vetle_at_roeim.net>
wrote:

> On 04.09.14 04:09, Andre Perez wrote:
>
>> I am using JDK 1.7, Jersey 2.12, Tomcat 7, MongoDB and RestAssured
>> <https://code.google.com/p/rest-assured/> to unit test my Rest calls...
>> The issue is that RestAssured needs Tomcat to be running with my war
>> file,
>> in order, to work. Is there an embedded server or in-memory server along
>> with a different unit testing framework which I can use to test my Restful
>> Web Services (basically without be tightly coupled to an external server)?
>> Would love to hear people's suggestions regarding best practices?
>>
>
> We have great experience using JerseyTest (https://jersey.java.net/
> documentation/latest/test-framework.html). The in-memory test container
> works great, and enables us to run tests in paralell, and we replace beans
> in some tests when we need to.
>
> Our tests usually start a in-memory container with JerseyTest, and then
> just do `jerseyTest.target(someUri).request() ...` to access the server
> and perform our testing.
>
> If you need Tomcat, you can still use JerseyTest and just configure it to
> use an external container (https://jersey.java.net/
> documentation/latest/test-framework.html#d0e15742), but I suppose you
> will lose some of the advantages - you most likely have to create something
> to actually start Tomcat and deploy your WAR file.
>
> Good luck!
>
> Regards,
> Vetle
>
>