मैं जूनिट 4 के साथ पुन: बीमा का उपयोग कर रहा हूं। मेरी टेस्ट विधि में मैं मोंगोडब में एक ऑब्जेक्ट बनाता हूं और जब मैं परीक्षण चलाता हूं तो यह भी सफलतापूर्वक जारी रहता है। लेकिन मुझे बनाई गई आईडी को स्टोर करने की ज़रूरत है, इसलिए मैं प्रतिक्रिया निकाय प्राप्त करने का प्रयास करता हूं। लेकिन response.getBody().asString()
खाली है।बाकी आश्वासन वाले पद के लिए खाली प्रतिक्रिया निकाय
@Test
public void testA() throws JSONException {
Map<String,Object> createVideoAssignmentParm = new HashMap<String,Object>();
createVideoAssignmentParm.put("test1", "123");
Response response = expect().statusCode(201).when().given().contentType("application/json;charset=UTF-8")
.headers(createVideoAssignmentParm).body(assignment).post("videoAssignments");
JSONObject jsonObject = new JSONObject(response.getBody().asString());
id= (String)jsonObject.getString("assignmentId");
}
जब मैं बाकी अंत बिंदु बाहर से आह्वान है, यह प्रतिक्रिया शरीर भी प्रासंगिक क्षेत्रों तो बाकी एपीआई के साथ कोई समस्या नहीं के साथ देता है।
यदि उपरोक्त प्रश्न के लिए कोई उत्तर नहीं है तो आप बाकी आश्वासन का उपयोग करके रिटर्न बॉडी के साथ एक पोस्ट का परीक्षण कैसे करेंगे ताकि मैं इस तरह से कोशिश कर सकूं।
मेरे नियंत्रक विधि लग रहा है, जैसे
@RequestMapping(value = "/videoAssignment", produces = APPLICATION_JSON_VALUE, consumes = APPLICATION_JSON_VALUE, method = RequestMethod.POST)
@ResponseBody
public HttpEntity<VideoAssignment> createVideoAssingnment(
//@ApiParam are there..){
//other methods
return new ResponseEntity<>(va, HttpStatus.CREATED);
}
धन्यवाद। मैं इसका उपयोग करने की कोशिश करता हूँ। यदि मैं दूसरी बॉडी लाइन के साथ दौड़ता हूं तो यह कहता है, "प्रतिक्रिया में कोई सामग्री-प्रकार परिभाषित नहीं किया गया था"। तो फिर मैं सामग्री प्रकार को फिर से जोड़ता हूं .थ()। स्टेटसोड (201) .contentType ("application/json") .body ("असाइनमेंट आईडी", बराबर ("testid123")) लेकिन यह कहता है, एप्लिकेशन/जेसन "नहीं करता" टी वास्तविक सामग्री-प्रकार से मेल खाता है। कोई संकेत क्या कारण है? मेरे नियंत्रक में बाकी एपीआई जेसन के रूप में परिभाषित विशेषताओं का उत्पादन और उपभोग करता है। मैंने यह दिखाने के लिए अपना प्रश्न अपडेट किया है कि नियंत्रक एपीआई कैसा दिखता है। – Harshana
अभी भी जब मैं देखता हूं(), मैं देख सकता हूं कि सामग्री शून्य है और सामग्री टाइप = "" – Harshana
@ हरशाना मुझे संदेह है कि आपका नियंत्रक अच्छी तरह कॉन्फ़िगर नहीं है। गलत हेडर सेट होने पर यह जेसन के बजाय एक्सएमएल उत्पन्न कर सकता है, तो आपको शायद 'स्वीकार करें' सेट अप करने की आवश्यकता हो हेडर के रूप में हेडर भी। इसके अलावा, मैंने कक्षा के बिना निरंतर नाम का उपयोग किया है जिसका उपयोग आप स्पष्ट रूप से 'उत्पादन = मीडियाटाइप.एपीपीआईसीएशन_जेएसओएन_वीएमएल'' का उपयोग कर सकते हैं। इसके अतिरिक्त, RestAssured का उपयोग करने से पहले अपनी सेवा से कनेक्ट करने के लिए, सुनिश्चित करें कि आप पोस्टमैन जैसे किसी अन्य क्लाइंट के साथ अपने कंट्रोलर तक पहुंच सकते हैं, और एक बार जब आप इसकी पुष्टि कर लेंगे तो RestAssured पर जाएं –