2016-02-18 114 views
0

我有型号PostImagePost的has_many images水豚测试问题

我有这个领域

<%= f.file_field :image, required: false %>

如何测试加入由cocoon宝石方法与水豚attach_file方法添加图像?

attach_file("file_field", "#{Rails.root}/spec/assets/example.jpg")

我应该写的,而不是file_field什么?这个领域的名字应该是什么? “图像”或:图像不起作用。

根据Capybara文档:“文件字段可以通过其名称,标识或标签文本找到。”但以上都不起作用。

+0

使用'save_and_open_page'在您的浏览器和使用Web检查发现的名称,编号或标签中打开页面。 – max

+0

你可以添加你的文件字段生成的HTML吗? – SsouLlesS

+0

您提供的信息很少,我们无法猜测该字段的ID /名称/标签可能是什么。你能否多给我们看看你的整个表单/视图代码的外观?你正在使用哪种表单构建器?你的文件字段是否有(正确的)标签?或者向我们展示该字段生成的html。也可以使用xpath表达式来代替:http://stackoverflow.com/questions/15165455/how-do-i-attach-a-file-when-the-input-file-has-a-dynamic-id – nathanvda

回答

0

这是我找到的决定,它适用于我。您可以搜索页面上的所有输入元素,然后设置每个元素的值。

elements = page.all(:css, 'input[type="file"]') elements[0].set "#{Rails.root}/spec/assets/example.jpg" elements[1].set "#{Rails.root}/spec/assets/example_2.jpg"

0

试试这个代码,因为这link

it "can upload an image" do 
    post :picture, avatar: fixture_file_upload('files/spongebob.png', 'image/png') 
    response.should be_success 
end 

这个question读答案,我认为将是有益的。