2014-05-21 20 views
6

Ho sviluppato una webapp di Spring MVC con metodi di riposo. Mi piacerebbe utilizzare RestAssured per creare classi di test JUnit. Dalla documentazione sembra davvero semplice da fare, ma ho invece qualche problema. Fondamentalmente voglio usarlo per evitare un runtime istanza di Tomcat, ma il problema è che quando eseguo la classe di test JUnit ottengo la seguente eccezione:RestAssuredMockMvc Connessione a http: // localhost: 8080 rifiutato

org.apache.http.conn.HttpHostConnectException: Connection to http://localhost:8082 refused 
... 
Caused by: java.net.ConnectException: Connection refused 

Questa è la mia classe JUnit:

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); 

    } 

} 

ho anche provato a configurare RestAssuredMockMvc direttamente con la classe controller, ma il risultato è lo stesso:

RestAssuredMockMvc.standaloneSetup(new ExternalController()); 

il controller sembra che:

0.123.

In questa guida, http://www.jayway.com/2014/01/14/unit-testing-spring-mvc-controllers-with-rest-assured/ viene specificato che "L'aspetto più importante è che è più semplice avviare l'ambiente. Non è necessario eseguire il bootstrap di un contenitore (ad esempio Jetty o Tomcat), è sufficiente inizializzare RestAssuredMockMvc con un contesto (ad esempio un controller) e si è pronti per andare. "Quindi non capisco dove sia il problema. ogni suggerimento?

Il file di guerra schierato con Tomcat funziona bene. Grazie

risposta

6

stai staticamente importando i metodi sbagliati. si sta importando given da com.jayway.restassured.RestAssured (io.restassured.RestAssured se si utilizza la versione 3.x), ma si dovrebbe staticamente importare i metodi da com.jayway.restassured.module.mockmvc.RestAssuredMockMvc (io.restassured.module.mockmvc.RestAssuredMockMvc nella versione 3.x) .Per ulteriori informazioni, consultare

Problemi correlati