jaxrs-unit
A library for unit testing of JAX-RS application.
Description
The goal is to write unit tests without a real JavaEE server. But tests use real JAX-RS implementation (Jersey or RestEasy) with in-memory containers.
JaxRS Unit provides an API to encapsulate the specific im-memory containers.
Environment
-  
java-1.8 
Build
mvn clean verify 
    Usage
Maven
You have to add api dependency :
<dependency>
    <groupId>io.github.binout</groupId>
    <artifactId>jaxrs-unit-api</artifactId>
    <version>${version}</version>
    <scope>test</scope>
</dependency> 
     You have to choose an implementation :
-  
RestEasy
 
<dependency>
    <groupId>io.github.binout</groupId>
    <artifactId>jaxrs-unit-resteasy</artifactId>
    <version>${version}</version>
    <scope>test</scope>
</dependency> 
     -  
Jersey
 
<dependency>
    <groupId>io.github.binout</groupId>
    <artifactId>jaxrs-unit-jersey</artifactId>
    <version>${version}</version>
    <scope>test</scope>
</dependency> 
     Hello World
Considering a JAX-RS resource :
@Path("/hello")
public class HelloResource {
    @GET
    public String hello() {
        return "hello";
    }
} 
     You can write a unit test like this :
public class HelloTest {
    private JaxrsServer server;
    @Before
    public void init() {
        server = JaxrsUnit.newServer(HelloResource.class);
    }
    @Test
    public void should_return_hello() {
        JaxrsResource resource = server.resource("/hello");
        JaxrsResponse response = resource.get();
        assertThat(response.ok()).isTrue();
        assertThat(response.content()).isEqualTo("hello");
    }
} 
     TODO
-  
resource injection