2016-07-22 14 views
0

Ich möchte eine Handvoll REST Endpunkte haben, um zu überprüfen, ob meine benutzerdefinierte Annotation beim Senden des gewünschten Fehlerstatus gut funktioniert.So haben Sie JAXRS-Endpunkte im Testordner

Wie ich möchte nicht diese bei meinen Kunden zu implementieren, sollte die natürliche Wahl, um meine @Path Endpunkte im Test/java Ordner zu haben und sie durch die JAXRS Implementierung entdeckt hat (in meinem Fall Jersey), durch die Verwendung von @ComponentScan Annotation.

Leider passiert die Magie nicht.

Was ist die richtige Beschwörungsformel? Fehlt eine Zutat in meinem Rezept?

Mein Kontext ist Spring, Hibernate, Tomcat7, Jersey 2.2

+0

Möchten Sie vor dem Bereitstellen der Anwendung (mithilfe von Scheindiensten) oder testen nach dem Deployment in einen temporären Container (grundsätzlich mit HTTP Clients)? – aksappy

+0

Dies ist Teil der üblichen Tests der App. Von Jenkins geführt. Es gibt bereits Tests, die zusammen mit der App einen eigenen Tomcat starten. Sie werden also separat in der App ausgeführt, die Testversion (nicht implementiert). –

+0

Möchten Sie Tests für Ihre REST-Endpunkte schreiben und ausführen, ohne Tomcat separat auszuführen? – Justas

Antwort

0

Wenn Sie ein Trikot Projekt mit tomcat mit Unterstützung von 3-Servlet bereitstellen möchten Sie Ressourcenkonfigurations Klasse für Jersey

public class MyApplication extends ResourceConfig { 
    public MyApplication() { 
    packages("org.foo.rest;org.bar.rest"); 
    } 
} 

für Tests zur Verfügung haben Sie können Testklassen kopieren, indem Sie ein antrun-Plugin verwenden. Verwenden Sie diese github-URL als Referenz. gist.github.com/isopov/4387142

+0

Danke shivam, es gibt bereits eine solche Klasse im Ordner src/java. Mein Problem ist, dass ich möchte, dass meine Endpunkte in test/java sind, damit sie nicht im Krieg eingesetzt werden. In der Tat ist dies mein Problem, meine Tomcats in der Testphase gestartet laufen die App, die ohne die Klassen unter Test/Java gebaut wird. THus der Fehler 404. danke fürs Öffnen meiner Augen. –

+0

zum Testen können Sie Test-Klassen mit Antrun-Plugin kopieren Verwenden Sie diese Github-URL als Referenz https://gist.github.com/isopov/4387142 – shivam

+0

Das ist schlau @shivam, treue Ameise zur Rettung. Wird die Idee meinen Mitarbeitern vorlegen. Ich habe eine Testklasse gemacht, Felder darin kommentiert, wie ich es mit meinem jaxrs queryparams gemacht habe, und dann Methoden geschrieben, wo ich den Validator anrufe. Ich fange die Validierungsausnahme und grabe die Ursache, um zu überprüfen, ob der Status korrekt ist. –