How to get Instanz von javax.ws.rs.core.UriInfo
Gibt es eine Umsetzung von javax.ws.rs.core.UriInfo
die ich verwenden können, erstellen Sie eine Instanz schnell zum testen. Diese Schnittstelle ist lang, ich muss nur etwas testen. Ich will nicht zu Zeit auf die gesamte Implementierung dieser Schnittstelle.
UPDATE: ich möchte schreiben Sie einen unit test für eine ähnliche Funktion wie diese:
@GET
@Path("/my_path")
@Produces(MediaType.TEXT_XML)
public String webserviceRequest(@Context UriInfo uriInfo);
Du musst angemeldet sein, um einen Kommentar abzugeben.
Du einfach Spritzen Sie es mit der
@Context
annotation an einem Feld oder parameter der Methode.Andere als Ihre Ressource-Klassen, es kann auch injiziert werden, in anderen Anbietern, wie
ContainerRequestContext
,ContextResolver
,MessageBodyReader
etc.BEARBEITEN
Ich nicht Holen, die sich in Ihrer post. Aber ein paar Optionen, die ich denken kann für unit-tests
Erstellen Sie einfach eine stub, die Umsetzung, nur die Methoden, die Sie verwenden.
Verwenden Sie ein Mocking-framework wie Mockito, und verspotten die
UriInfo
. BeispielMüssen Sie diese Abhängigkeit
Wenn Sie wollen, um ein integration-test, wo die eigentliche UriInfo injiziert wird, sollten Sie sich in Trikot-Test-Framework
Hier ist ein vollständiges Beispiel mit den Trikot-Test-Framework
Fügen Sie einfach diese Abhängigkeit
Es verwendet eine in-memory Containers, das ist die effizienteste für kleine tests. Es gibt auch andere Container mit Servlet-Unterstützung, wenn nötig. Sehe gerade der link, den ich oben gepostet.
Du entweder mock, oder verwenden Sie so etwas wie http://arquillian.org/
Ich schrieb, integration tests, also nicht verwenden, mock Zeug
Verwendete ich einen code für jersey-tests
http://www.programcreek.com/java-api-examples/index.php?source_dir=JerseyTest-master/jersey-tests/src/test/java/com/sun/jersey/impl/uri/UriPathHttpRequestTest.java
und
Wenn Sie eine Fehlermeldung erhalten, über anforderungsbereich Bohnen sehen request-scoped beans in spring-Prüfung