Gibt es eine Implementierung von javax.ws.rs.core.UriInfo
, mit der ich eine Instanz schnell zum Testen erstellen kann? Diese Schnittstelle ist lang, ich muss nur etwas testen. Ich möchte keine Zeit mit der gesamten Implementierung dieser Schnittstelle verschwenden.
UPDATE: Ich möchte einen Komponententest für eine ähnliche Funktion schreiben:
%Vor% Sie injizieren es einfach mit der Annotation @Context
als Feld- oder Methodenparameter.
Anders als Ihre Ressourcenklassen kann es auch in andere Anbieter eingefügt werden, wie ContainerRequestContext
, ContextResolver
, MessageBodyReader
etc.
Eigentlich möchte ich einen Junit-Test für eine ähnliche Funktion wie deine doSomthing () -Funktion schreiben.
Ich habe das in Ihrem Post nicht abgeholt. Aber ein paar Optionen, die ich mir für Unit-Tests vorstellen kann
Erstellen Sie einfach einen Stub und implementieren Sie nur die Methoden, die Sie verwenden.
Benutze ein Mocking-Framework wie Mockito und spotte das UriInfo
. Beispiel
Sie müssen diese Abhängigkeit hinzufügen
%Vor%Wenn Sie einen Integrationstest durchführen möchten, bei dem die tatsächliche UriInfo-Komponente injiziert wird, sollten Sie sich das Jersey Test Framework ansehen
Hier ist ein komplettes Beispiel mit dem Jersey Test Framework
%Vor%Fügen Sie einfach diese Abhängigkeit hinzu
%Vor%Es verwendet einen In-Memory-Container, der für kleine Tests am effizientesten ist. Es gibt weitere Container mit Servlet-Unterstützung, falls erforderlich. Sehe einfach den Link, den ich oben gepostet habe.
Ich habe Integrationstests geschrieben, also kann ich keine Mocks verwenden
Ich habe einen Code für Trikot-Tests verwendet
%Vor%und
%Vor%Wenn Sie Fehler bei Anforderungsbereichsbeans erhalten, lesen Sie scoped bean im Frühling testen
Tags und Links java unit-testing jax-rs jersey-2.0 grizzly