Ich habe eine Anforderung, Webservice-Aufruf zu verspotten. Hier anstelle von tatsächlichen Webservice Aufruf an Dummy-Server und Server sollte meine Antwort XML-Antwortdatei aus dem lokalen Verzeichnis antworten.kann ich einen SOAP verspotten und Rest Webservice reagiert mit Datei-Stream von lokalen directiry
kann ich einen SOAP verspotten und Rest Webservice reagiert mit Datei-Stream von lokalen directiry
Antwort
Unser Projekt verwendete diesen Ansatz (verwendet für die Verspottung externer Webservices, die im lokalen Arbeitsbereich nicht verfügbar waren).
Kurze Antwort ist ja, aber wie Sie implementieren, hängt von Ihrem Code ab.
Zuerst haben wir eine Schnittstelle zum Aufruf von Webservice erstellt, so dass wir 2 Implementierungen erstellen können, eine tatsächliche (die externen Dienst aufruft) und eine Test (die einen internen WebService aufruft, der aus Datei liest).
Als Nächstes erstellten wir einen Test-Webservice, den wir auf demselben Server hosten. Jetzt war die Logik einfach. Aufgrund der Eingabe haben wir die richtige Antwort aus der Datei gelesen. Sie können die von Ihnen gewünschte Logik erstellen, unser Framework wurde entwickelt, um mehrere Webservices zu unterstützen. Schließlich, in unserem Code, eine Art wie Frühling, haben wir früher auf den Service (über die Schnittstelle) statt auf den eigentlichen Service hingewiesen. So konnten wir aus der Datei lesen und eine Antwort geben. Wenn eine externe Schnittstelle verfügbar wäre, würden wir einfach die Konfiguration wechseln und wir wären gut.
Natürlich ist dies über Vereinfachung, aber ich hoffe, Sie bekommen das Wesentliche.
Sie haben zwei Vorgehensweisen:
- Mock den ws von der Client-Seite durch eine verspottete Implementierung des Client-ws bereitstellt.
- Spotten Sie die WS von der Server-Seite durch Erstellen einer spöttischen Instanz der WS.
den Anruf von der Client-Seite Mocking ist einfach. Sie erstellen eine gemeinsame Schnittstelle mit den ws-Methoden, die Sie aufrufen möchten. Und Sie erstellen zwei Implementierungen davon. Eine mit dem effektiven Aufruf an die WS und eine andere mit Stub-Antworten aus lokalen Dateien.
Mocking oder Simulieren der WS von der Serverseite ist nicht viel kompliziert, aber es ist nicht der gleiche Ansatz. Sie können es hart codieren, aber es ist keine sichere Lösung, wenn Sie es erneut verspotten müssen. Sie können auch einen Webservice-Simulator anstelle Ihres Webservice verwenden. Sie werden nicht Ihren Webservice abfragen, sondern einen anderen.
SOAPUi kann Ihnen helfen, diese Aufgabe zu erfüllen, indem Sie Ihre Webservice-Antworten verspotten.
Example for SOAP mocking
Um eine lokale Datei als Antwort zu verwenden, sollten Sie die SOAPUI-Antwortskripte verwenden.
SOAP reponse mocking
Wenn Sie es für Unit-Tests verwenden, finden Sie unter [diese] (https://github.com/skjolber/mockito-soap-cxf) JUnit Regel Projekt, das ich gerade nach oben gesetzt haben. – ThomasRS