2016-02-18 141 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讀答案,我認爲將是有益的。