Ich entwickelte eine Spring MVC Webapp mit Restmethoden. Ich würde gerne RestAssured verwenden, um JUnit-Testklassen zu erstellen. Aus der Dokumentation sieht es wirklich einfach aus, aber ich habe stattdessen ein Problem. Grundsätzlich mag ich es verwenden, um eine Runtime-Tomcat-Instanz zu vermeiden, aber das Problem ist, dass, wenn ich die JUnit-Testklasse ausführen ich die folgende Ausnahme erhalten:RestAssuredMockMvc Verbindung zu http: // localhost: 8080 abgelehnt
org.apache.http.conn.HttpHostConnectException: Connection to http://localhost:8082 refused
...
Caused by: java.net.ConnectException: Connection refused
Das ist meine JUnit-Klasse:
import static com.jayway.restassured.RestAssured.given;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.web.WebAppConfiguration;
import org.springframework.web.context.WebApplicationContext;
import com.jayway.restassured.module.mockmvc.RestAssuredMockMvc;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"file:src/test/resources/spring/application-test-config.xml"})
@WebAppConfiguration
public class ExternalControllerTest {
private static final Logger logger = LoggerFactory.getLogger(ExternalControllerTest.class);
@Autowired
WebApplicationContext webApplicationContext;
@Before
public void setUp() throws Exception {
RestAssuredMockMvc.webAppContextSetup(webApplicationContext);
}
@Test
public void addClientDeviceId_Success() {
given().get("/api/test").then().statusCode(200);
}
}
ich habe auch versucht RestAssuredMockMvc direkt mit dem Controller-Klasse, aber das Ergebnis ist das gleiche zu konfigurieren:
RestAssuredMockMvc.standaloneSetup(new ExternalController());
der Controller sieht wie folgt aus:
In diesem Handbuch wird http://www.jayway.com/2014/01/14/unit-testing-spring-mvc-controllers-with-rest-assured/ angegeben, dass "der wichtigste Aspekt ist, dass es einfacher ist, die Umgebung zu starten. Sie müssen einen Container nicht laden (zum Beispiel Jetty oder Tomcat), Sie initialisieren RestAssuredMockMvc einfach mit einem Kontext (zum Beispiel einem Controller) und schon kann es losgehen. "Ich verstehe also nicht, wo das Problem liegt. Jeder Vorschlag?
die Datei Krieg mit Tomcat zum Einsatz funktioniert. Dank