में मैं जो इनपुट के रूप में बहुखण्डीय प्रपत्र डेटा लेता है एक प्ले 2 नियंत्रक के लिए एक समारोह परीक्षण बनाने के लिए कोशिश कर रहा हूँ। मल्टीपार्ट फॉर्म POST का समर्थन करने के लिए वर्तमान में FakeRequest में कोई विधि नहीं है। इस नियंत्रक का परीक्षण करने के अन्य तरीके क्या हैं?टेस्ट MultipartFormData प्ले 2.0 FakeRequest
Map<String, Object> map = new HashMap<String, Object>();
map.put("param1", "test-1");
map.put("param2", "test-2");
map.put("file", file)
Result result = routeAndCall(fakeRequest(POST, "/register").withFormUrlEncodedBody(map));// NO SUCH METHOD
संपादित करें: इस तरीके को मैं बहुखण्डीय परीक्षण करने के लिए किया था।
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://localhost:3333/blobupload");
FileBody imageFile = new FileBody(new File("test/resources/test-1.jpg"));
StringBody guid1 = null;
StringBody guid2 = null;
try {
guid1 = new StringBody("GUID-1");
} catch (UnsupportedEncodingException e1) {
e1.printStackTrace();
}
MultipartEntity reqEntity = new MultipartEntity();
reqEntity.addPart("key1", imageFile);
reqEntity.addPart("key2", guid1);
httppost.setEntity(reqEntity);
HttpResponse response;
try {
response = httpclient.execute(httppost);
HttpEntity resEntity = response.getEntity();
assertThat(response.getStatusLine().getStatusCode()).isEqualTo(200);
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
क्यों callAction withFormUrlEncodeBody के लिए आवश्यक है? मार्ग और कॉल भी काम करना चाहिए। routeAndCall (fakeRequest (पोस्ट, "/route").withFormUrlEncodedBody(map)); – angelokh
Mutlipartformdata आपके विधि के साथ स्कैला के लिए काम कर सकता है। हालांकि, जावा के लिए, फर्मउरल एन्कोडेड बॉडी ऑब्जेक्ट प्रकार में मूल्य वाले मानचित्र को अनुमति नहीं देगा। – angelokh
मुझे नहीं पता कि जावा स्वाद पर कॉलएक्शन क्यों आवश्यक है लेकिन ऐसा लगता है कि आप केवल fakeRequest() को कॉल कर सकते हैं। कॉलऑक्शन के साथ FormUrlEncodeBody के साथ, वैसे भी, मुझे जावा भाषा के बारे में बहुत कुछ नहीं पता है, इसलिए मैं पूरी तरह से गलत हो सकता हूं। मुझे लगता है कि आप withFormUrlEncodedBody उपयोग करने के लिए अपने बहुखण्डीय का परीक्षण करने की आवश्यकता नहीं है, आप केवल सही पोस्ट अनुरोध बनाने चाहिए। – DamnWidget