2011-11-17 96 views
0

我正在寫它使用DragonFly gem來處理附件,在這裏一個表單頁面一個規範時失敗是我的規格(它的相關部分)水豚規範使用attach_file蜻蜓

fill_in "Subject", :with => 'My message' 
fill_in "Title", :with => 'My image title' 
fill_in "Content", :with => 'Message content' 
attach_file 'Title image', Rails.root.join('spec', 'factories', 'test-image.png') 
click_button "Create Message" 
page.should have_content("Message was successfully created.") 

但是它失敗的click_button一步,出現以下錯誤

Failure/Error: click_button "Create Message" 
    ArgumentError: 
     Dragonfly::TempObject must be initialized with a String, a Pathname, a File, a Tempfile, another TempObject, something that responds to .tempfile, or something that responds to .path 

我就找到了這個錯誤,我發現它在this line提出真實;我已經把一些調試指令線前,我發現objArray包含影像,這裏是由p obj.inspect

"[\"\\x89PNG\\r\\n\", \"\\u001A\\n\", \"\\u0000\\u0000\\u0000\\rIHDR\\u0000\\u0000\\u0003s\ 

我做錯了返回的第一個數據的二進制數據?這是我的錯,還是與水豚和蜻蜓有一些不兼容?

P.S.當我使用真正的瀏覽器訪問應用程序時,它就像一個魅力。

回答

0

我使用的是老版本的水豚,我已經用bundle update capybara更新到版本1.1.2,問題沒有了。