我正在为使用DragonFly gem处理附件的表单页面编写规范,这是我的规范(相关部分)
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中提出的;我在该行之前放了一些调试指令,我发现obj
是Array
,其中包含图像的二进制数据,这里是p obj.inspect
"[\"\\x89PNG\\r\\n\", \"\\u001A\\n\", \"\\u0000\\u0000\\u0000\\rIHDR\\u0000\\u0000\\u0003s\
我做错了什么?这是我的错还是与Capybara和Dragonfly有些不兼容?
P.S。当我使用真正的浏览器访问应用程序时,它就像一个魅力。
答案 0 :(得分:0)
我使用的是旧版本的Capybara,我已使用bundle update capybara
将其更新为版本1.1.2,问题仍然存在。