इस प्रश्न के लिए खोज की गई और इसे स्टैक ओवरफ्लो पर इसका जवाब नहीं मिला, लेकिन इसे कहीं और मिला, इसलिए मैं इसे एसओ पर उपलब्ध कराने के लिए कह रहा हूं।
रेल फ्रेमवर्क का एक फंक्शन है fixture_file_upload
( रेल्स 2 रेल्स 3 , रेल्स 5 ), जो निर्दिष्ट फ़ाइल के लिए आपके फिक्स्चर निर्देशिका को खोजेगा और इसे कार्यात्मक परीक्षण में नियंत्रक के लिए परीक्षण फ़ाइल के रूप में उपलब्ध कराएगा। इसके प्रयेाग के लिए:
1) अपनी फ़ाइल को परीक्षण में अपलोड करने के लिए अपने फिक्स्चर / परीक्षण के लिए उपनिर्देशिका में रखें।
2) अपने यूनिट टेस्ट में आप fixture_file_upload ('पाथ', 'माइम-टाइप') कॉल करके अपनी टेस्टिंग फाइल प्राप्त कर सकते हैं।
उदाहरण के लिए:
bulk_json = fixture_file_upload('files/bulk_bookmark.json','application/json')
3) कंट्रोलर एक्शन को हिट करने के लिए पोस्ट मेथड को कॉल करें, अपलोड के लिए पैरामीटर के रूप में fixture_file_upload द्वारा लौटाए गए ऑब्जेक्ट को पास करना।
उदाहरण के लिए:
post :bookmark, :bulkfile => bulk_json
या रेल में 5: post :bookmark, params: {bulkfile: bulk_json}
यह आपके जुड़नार निर्देशिका में फ़ाइल की एक Tempfile प्रतिलिपि का उपयोग करके सिम्युलेटेड पोस्ट प्रक्रिया के माध्यम से चलेगा और फिर अपनी इकाई परीक्षा में वापस आ जाएगा ताकि आप पोस्ट के परिणामों की जांच शुरू कर सकें।