2016-04-06 12 views
0

Ich versuche herauszufinden, wie Sie eine externe API integrieren und jeden Integrationstest dagegen ausführen. Ich habe gelesen, und ein Blick auf:Dropwizard 1.0 Integration Testing: Schlagen eine externe API

aber es sieht aus wie diese sind Beispiele für lokale Endpunkte testen und nicht die externen. Ich möchte meine API-Anrufe mit JUnit-Tests testen können. Momentan muss ich meine App starten und ausführen, um sicherzustellen, dass sie funktioniert.

Dies ist die Richtung, die ich bin derzeit zu erkunden:

private Client client; 

@Before 
public void setUp() throws Exception { 
    client = ClientBuilder.newClient(); 
} 

@After 
public void tearDown() throws Exception { 
    client.close(); 
} 

@Test 
public void testHitApi() throws Exception { 
    client.target("https://api.github.com/users/" + getUser() + "/repos"); 
} 

Jede Hilfe wäre sehr geschätzt, danke!

+0

Hallo, verstehe ich das richtig - Sie wollen eine Ressource testen, die Sie gebaut haben? Sie sollten lesen: https://jersey.java.net/documentation/latest/test-framework.html Es beschreibt, wie Sie einen Komponententest mit Ihrer Ressource starten, den Sie dann treffen können. – pandaadb

Antwort

0

Sie müssen den API-Aufruf ausführen, um den Endpunkt zu treffen.

gerade dabei:

client.target("https://api.github.com/users/" + getUser() + "/repos") 

eine WebTarget zurückgibt.

Sie sollten idealerweise so etwas wie:

client 
.target("https://api.github.com/users/" + getUser() + "/repos") 
.request() 
.get() ; // for a get call 

Google für genaue Post/put/löschen Anrufe.

0

Wenn Sie Ihre Integrationstests gegen eine externe API oder eine separate laufende Instanz Ihrer API ausführen möchten.

testEnvironment = new Environment("Test environment", Jackson.newObjectMapper(), 
      null, new MetricRegistry(), null); 

ObjectMapper mapper = Jackson.newObjectMapper(new YAMLFactory()); 
    IntegrationTestConfiguration integrationTestConfiguration = mapper.readValue(fixture("integration-testing-config.yml"), 
      IntegrationTestConfiguration.class); 

Instantiate Ihre Kunden als so

exampleClient = new exampleClient(testEnvironment, clientConfiguration); 

Hoffnung, das hilft.