2016-09-09 5 views
2

ich zwei Spring Anwendungen haben, die die einander über Datenbank interagieren und einige AMQP:Einzelintegrationstest für mehrere Feder apps

  • Web-Anwendung auf Spring MVC
  • Spring-Boot Anwendung gebaut

Jeder Anwendung hat ihre unabhängigen Kontext- und Eigenschaftendateien.

Wie schreibt man den einzelnen Integrationstest für diese beiden Anwendungen richtig?

Genauer gesagt: Ich kann diese beiden Anwendungen in einem maven Projekt zusammenführen, um Zugriff auf beide zu haben.

  1. Ist es möglich, Test Kontexte für beide Anwendungen in ein Feder Test zu konfigurieren? Im Moment habe ich noch keine Idee, wie man Springbenutzungen unterschiedliche Kontexte für verschiedene Anwendungen in einem Test mitteilen kann.

  2. Ein weiterer Zweck dieses Tests besteht auch darin, eine Codeabdeckung für diese beiden Anwendungen zu erhalten. Deshalb kann ich nicht einfach sagen, Spring-boot Anwendung als separaten Prozess. Ist es überhaupt möglich?

Antwort

2

Spring Testmodul bringt einen einzigen Anwendungskontext (am key abstractions section of the official documentation einen Blick) + pro Test so nicht, Sie können nicht mehrere Anwendungskontexte pro Test haben.

Was können Sie haben, ist eine Anwendungskontext zusammengefasst, die sowohl die Spring Boot und Spring MVC Anwendung Kontext importiert; Auf diese Weise können Sie Beans aus beiden Anwendungen testen. Dies ist jedoch wahrscheinlich nicht das, was Sie tun möchten, und es ist etwas, gegen das ich empfehlen würde - Ihre Tests werden fast wertlos, da dieser Ansatz funktioniert, könnte einige Hacks beinhalten und Sie werden Ihre Anwendungen nicht realistisch testen, da sie bereitgestellt werden separat.

Sie sollten Integrationstests für jede Anwendung schreiben und die Abdeckung für jede dieser Anwendungen messen. Wenn Ihre Anwendung relativ klein ist, können Sie ein End-to-End-Testmodul verwenden, das eine ähnliche Umgebung wie Ihre Produktion erstellt und überprüft, ob Ihre Anwendungen korrekt zusammenarbeiten.

Verwandte Themen