2016-04-18 10 views
1

Ich habe einen Dienst, der zu einer Reihe von APIs verbindet, die ich testen möchte.Integrationstest mit einem gefälschten Server

Ich möchte einen Fake-Dienst für meine Integrationstests machen (Ausfallsituationen zu simulieren)

Ich kann einfach nicht verwenden @RestController, da sie nicht während eines Tests geladen werden, und ich sah in mockserver aber ich bin nicht sicher, Wenn es das ist, wonach ich suche, da ich nicht möchte, dass mein Test einen Scheinanruf auslöst, sollte mein Code den API-Aufruf normal auslösen, einfach den Mock-Server anstelle eines tatsächlichen Servers verwenden (die Basis-URL ist konfigurierbar)

: ich kann meine Dienststelle zu einem Mock-Server)

UPDATE 1 machen

Die einzige Alternative, die ich sehe, ist möglicherweise Cargo starten und meinen Dienst darin einsetzen?

UPDATE 2: Ich habe gerade über Wiremock erfahren. Könnte das hier nutzbar sein?

+0

Haben Sie den Spring MVC Test getestet? –

+0

Ich möchte aber keinen Federregler testen. – mangusbrother

Antwort

2

ging ich mit WireMock http://wiremock.org/

die ClassRule in einem JUnit-Test Einstellung wird die gefälschten Server müssen und laufen, bevor Sie Ihren Test beginnt.

1

Mockito (http://docs.mockito.googlecode.com/hg/1.9.5/org/mockito/Mockito.html) ist eine gute Bibliothek für Mocking Methodenaufrufe. Es kann bei einer bestimmten Eingabe einen bestimmten Wert zurückgeben. Mit dieser Bibliothek könnten Sie einen REST-Client überspielen, um die Kommunikation zwischen Ihrer Anwendung und der REST-API zu simulieren.

+0

Leider werden meine API-Aufrufe beim Start des Kontextes ausgelöst, daher ist es sinnlos, sie in BeforeClass zu verspotten, da das Zeug nicht geladen wurde, während es in Before zu spät ist – mangusbrother