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