Ich schreibe gerade eine Java Client Server Anwendung. Also möchte ich zwei Bibliotheken implementieren, eine für den Client und eine für den Server. Die Client Server Kommunikation hat ein sehr striktes Protokoll, das ich mit JUnit testen möchte.HowTo Unit Test Client Server Code
Als Build-Tool im mit Maven und einem Husdon Server für die fortgesetzte Integration.
Eigentlich habe ich keine gute Idee, wie diese Client/Server-Bibliotheken zu testen.
Ich habe folgende Ansätze:
einfach ein Dummy-Client schreiben für den Server zu testen und einen Dummy-Server schreiben Sie den Client zu testen. Nachteile: Leider führt dies zu vielen zusätzlichen Arbeiten. Ich konnte nicht 100% ig sicher sein, dass Client und Server zusammenarbeiten könnten, weil ich nicht sicher bin, ob die Tests vollständig identisch sind.
Schreiben Sie ein separates Testprojekt, das den Client und den Server zusammen testet.
Nachteile: Die Komponententests gehören nicht zum Projekt selbst, daher wird Hudson sie nicht automatisch ausführen. Jeder, der etwas in einer dieser Bibliotheken ändert, muss die Tests manuell ausführen, um sicherzustellen, dass alles korrekt ist. Außerdem erhalte ich keinen Code Coverage Report.
Gibt es bessere Ansätze, solche Codes zu testen? Vielleicht testen Sie ein Maven Multi Module Project oder so ähnlich.
Ich hoffe, jemand hat eine gute Lösung für dieses Problem.
Danke.
Hmm diese Nähte genau die Art und Weise eine separate Einheit Test für den Server zu implementieren und den Kunden . In der Tat wird dies dazu führen, dass Copy die Konstanten in beide Projekte einfügt und so einen "Dummy Client"/"Dummy Server" implementiert. Das ist der erste Ansatz, den ich oben aufgeführt habe. – StaticBR
Warum setzen Sie Client und Server in verschiedene Projekte ein? * verwirrt * Wie auch immer, wenn du das wirklich willst, dann erstelle ein drittes Unit-Test-Projekt, das die anderen beiden importiert, also brauchst du die Konstanten nur einmal. –
Hmm zwei Projekte, weil der Client auf Low-Ressource-Geräte gehen muss. Und das Testprojekt ist der zweite Ansatz, den ich bereits im Voraus aufgeführt habe. Und ich habe auch die Nachteile dieses Ansatzes geschrieben. – StaticBR