2010-04-03 3 views

Antwort

5
  • Testen Sie die Dienste aus ihrem "Web-Service" -Kontext.
  • Verwenden Sie WSUnit, um Verbraucher zu testen.
  • einen Blick auf this article

Unit-Tests Einheiten von Code testen sollen. Sie sollten Geschäftslogik und nicht die Infrastruktur testen. Das ist also nicht "Unit-Testing", wenn Sie die Dienste im Web-Service-Kontext testen wollen.

+0

Also, was würden Sie einen Testanruf, der den Dienst und Tests es über den Endpunkt Brände? :) Auch der Wsunit Link ist ein 404? – rogerdpack

+0

breiter - "Integrationstest" wahrscheinlich. Ich habe den Link – Bozho

7

JAX-WS Web Services sind POJOs mit Anmerkungen versehen, so dass Sie können Unit-Test sie (isoliert) eine regelmäßige Unit Testing Framework (JUnit, TestNG) und Mocks verwenden.

+2

@Downvoter Care zu erklären? Diese Antwort zu verwerfen ist ein reiner Witz (der zeigt, dass Sie keine Ahnung davon haben, was Unit Testing BTW bedeutet). –

+0

Nicht genau obwohl. Sie sind _annotated_, was bedeutet, dass sie in dieser Hinsicht nicht nur Plain Java Objects sind. Sie haben zusätzliche Metadaten direkt an sie angehängt, die ihr Verhalten ändern. Etwas, das nicht erfasst werden kann, indem sie direkt als einfache Objekte getestet werden. Es gibt Dinge zu testen wie Sicherheitseinschränkungen, Transaktionsinteraktionen, asynchrone Aufrufe usw. All dies ist Teil des Problems der Vermischung der Geschäftslogik mit der Exposition eines Webdienstes. –

4

Für Funktionstests - Sie können Tools wie soapUI verwenden (aber ich empfehle diese Option nicht, da mit diesem Tool erstellte Tests wirklich schwer zu warten sind). Eine andere Option (empfohlen) verwendet JUnit-Tests, in denen Sie die Service- und Client-Service-Methoden erstellen. In unserem Projekt verwenden wir Apache CXF und es funktioniert sehr gut. Es unterstützt auch JAX-WS.

Für Komponententests - "reguläre" JUnit, seit generierten Service ist Plain Java Object.