में फ़ाइल अपलोड करने का परीक्षण करना मैं नियंत्रक का परीक्षण करने की कोशिश कर रहा हूं जो फीनिक्स फ्रेमवर्क का उपयोग कर फ़ाइल अपलोड करने की अपेक्षा करता है। मैंने फीनिक्स गाइड (http://www.phoenixframework.org/docs/file-uploads) पर मार्गदर्शिका का पालन किया और यह ब्राउज़र में काम करता है, लेकिन मुझे इसके लिए एक परीक्षा लिखने में परेशानी हो रही है। यहाँ मैं क्या किया है:फीनिक्स/elixir
test "POST photo" do
{ :ok, raw_file } = File.read "1528_27.jpg"
conn() |> post("/api/v1/originals", %{ :image => raw_file })
# do some assertions
end
समस्या है, नियंत्रक में, मेरी फाइल कभी नहीं एक %Plug.Upload
struct के रूप में समाप्त हो जाती है, लेकिन द्विआधारी के रूप में। तो जब परीक्षण, जैसे नियंत्रक नज़र में मेरे परम:
params: %{"image" => <<255, 216, 255, 225, 18, 180, 69, 120, 105, 102, 0, 0, 73, 73, 42, 0, 8, 0, 0, 0, 10, 0, 15, 1, 2, 0, 26, 0, 0, 0, 134, 0, 0, 0, 16, 1, 2, 0, 10, 0, ...>>},
और मेरे नियंत्रक ऊपर चल रही है जब params["image"].path
का उपयोग करने की कोशिश कर रहा। यह काम करता है जब हालांकि ब्राउज़र से अपलोड करने, फिर क्योंकि, मैं अपने परम में उम्मीद अपलोड struct है:
params: %{
"image" => %Plug.Upload{
content_type: "image/jpeg",
filename: "1528_27.jpg",
path: "/var/folders/98/40k7dt2d2sxf6xnkc_627lqc0000gp/T//plug-1448/multipart-280987-612081-2"
}
},
मैं post
एक परीक्षण से एक फ़ाइल, तो मैं कैसे एक %Plug.Upload
struct प्राप्त कर सकते हैं, और सिर्फ द्विआधारी नहीं ?
कि मसा में नहीं बल्कि स्पष्ट लगता;) THX! – srecnig
@srecnig समाधान स्पष्ट होने का शायद एक अच्छा संकेत है! – Gazler
डिस्क पर एक स्थिरता फ़ाइल से भौतिक रूप से पढ़ने के बिना इसका परीक्षण करने का कोई तरीका है? यदि संभव हो तो मैं स्मृति में चलाने के लिए अपने परीक्षण पसंद करता हूं – pmarreck