2014-05-21 17 views
6

मैंने आराम विधियों के साथ एक स्प्रिंग एमवीसी वेबपैप विकसित किया। मुझे जुनीट टेस्ट क्लास बनाने के लिए RestAssured का उपयोग करना अच्छा लगेगा। दस्तावेज़ीकरण से यह वास्तव में करना आसान लगता है लेकिन मुझे इसके बजाय कुछ समस्या है। मूल रूप से मैं इसे उपयोग करने के लिए एक क्रम बिलाव उदाहरण से बचने के लिए चाहते हैं, लेकिन समस्या यह है कि जब मैं JUnit परीक्षण वर्ग पर अमल मैं निम्नलिखित अपवाद प्राप्त है:RestAssuredMockMvc कनेक्शन http: // localhost: 8080 से इनकार कर दिया

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

    } 

} 

:

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

यह मेरा JUnit वर्ग है मैं भी नियंत्रक वर्ग के साथ सीधे RestAssuredMockMvc कॉन्फ़िगर करने के लिए कोशिश की, लेकिन परिणाम एक ही है:

RestAssuredMockMvc.standaloneSetup(new ExternalController()); 

नियंत्रक कि तरह लग रहा है:

0,123,
@Controller 
@RequestMapping("/api") 
public class ExternalController { 

    public ExternalController() { 
     logger.info("ExternalController initialised!"); 
    } 

    @RequestMapping(value="/test", method = RequestMethod.GET, produces={"application/json", "application/xml"}) 
    public @ResponseBody DmsResponse test(HttpServletResponse response) { 
     response.setStatus(HttpServletResponse.SC_OK); 
     return null; 
    } 

} 

इस मार्गदर्शिका में http://www.jayway.com/2014/01/14/unit-testing-spring-mvc-controllers-with-rest-assured/ निर्दिष्ट किया गया है कि "सबसे महत्वपूर्ण पहलू यह है कि पर्यावरण शुरू करना आसान है। आपको कंटेनर बूट करने की आवश्यकता नहीं है (उदाहरण के लिए जेट्टी या टॉमकैट), आप बस एक संदर्भ के साथ RestAssuredMockMvc प्रारंभ करते हैं (उदाहरण के लिए एक नियंत्रक) और आप जाने के लिए तैयार हैं। "इसलिए मुझे समझ में नहीं आता कि समस्या कहां है। कोई भी सुझाव? बिलाव के साथ तैनात

युद्ध फ़ाइल ठीक काम करता है। धन्यवाद

उत्तर

6

आप स्थिर गलत तरीकों आयात कर रहे हैं। आप com.jayway.restassured.RestAssured से given आयात कर रहे हैं (io.restassured.RestAssured अगर संस्करण 3.x का उपयोग), लेकिन आप स्थिर होना चाहिए com.jayway.restassured.module.mockmvc.RestAssuredMockMvc (io.restassured.module.mockmvc.RestAssuredMockMvc संस्करण 3x में) से विधियों को आयात करें। अधिक जानकारी के लिए documentation देखें।

संबंधित मुद्दे