Ich benutze Spring Boot 1.5.9 und wir haben einen Micro-Service, der sich mit anderen Micro-Services verbindet.Wie funktioniert es, mit mehreren Microservices zu arbeiten und sie in einer Entwicklungsumgebung (nicht Testumgebung) zu verspotten?
Für Integrationstest und Entwicklung (der Entwicklercomputer) Ich möchte die restlichen Anrufe, die für andere Mikrodienste gemacht werden, mock/stub. Für Unit/Integration Tests ist diese Frage bereits mehrfach beantwortet: WireMock, MockBean und MockRestServiceServer sind gute Werkzeuge. Aber für die Entwicklung Ich versuche, den besten Ansatz herauszufinden.
Warum? Es ist ein Problem, jeden Microservice zu starten, von dem der eigentliche Microservice abhängt. Die Idee ist also, den Microservice unabhängig zu machen und zu starten, ohne dass ein zusätzlicher Server auf dem Rechner des Entwicklers oder an einem anderen Ort läuft. So würde ein einfacher `mvn Spring-Boot-Run 'ausreichen, um meinen Microservice zu starten und ohne Bedenken um weitere Microservices zu arbeiten.
Also, meine Frage ist: Was der empfohlene Ansatz für Mock/Stub Rest Anrufe in Entwicklung? Wiremock ist auch in diesem Fall ein guter Ansatz?
Mein Projekt
Ich habe zwei Profile in src/main/java/resources/
: die 'default' (application.properties, dass für eine andere Umgebung verwendet wird) und die 'dev' (application-dev.properties, für die Entwicklung verwendet).
In meinen Tests (src/test/java/resources/
) habe ich nur eine application.properties, das ist grundlegend eine Kopie von application-dev.properties.
Ich versuche bereits, Wiremock für Integrationstests zu verwenden und funktioniert gut. Aber ich würde es auch nicht gerne für die Entwicklung verwenden, weil ich nicht so sehr die Idee mag, eine Abhängigkeit einzuführen, die nur für die Entwicklung in meiner JAR verwendet wird. Meine Absicht ist es, die gleiche Strategie für Integrationstest und -entwicklung zu verwenden.
Also, was sind die Optionen?
Warum schreiben Sie nicht einen Client für den zweiten Webdienst als Spring-Bean und verspotten Sie diese Spring-Bean in Ihren Komponententests? Genauso wie Sie ein DAO als Client für Ihre Datenbank schreiben und das DAO in Ihren Komponententests vortäuschen würden. –
Hallo! Das Unit/Integrationstest-Problem wurde gelöst (mit Wiremock). Meine Frage bezieht sich auf die normale Entwicklungsumgebung, wenn Sie den Spring Boot ausführen. Ich weiß nicht, ob die gleiche Vorgehensweise das "Richtige" ist. – Dherik
In Verbindung stehend: https://Stackoverflow.com/questions/39891218, https://softwareengineering.stackexchange.com/questions/332972, https://softwareengineering.stackexchange.com/questions/334609 – tkruse