2013-06-20 61 views
2

我有一個頁面有多個按鈕。例如:水豚曖昧的匹配 - 如何選擇第一項

<% Zombie.each.do |zombie| %> 
    <%= zombie.name %> 
    <%= form_for(zombie) do |f| %> 
    <div><%= f.hidden_field :craving, value: true %></div> 
    <%= f.submit t('zombie.craving') %> 
    <% end %> 
<% end %> 

我想測試

it "should increment the craving zombie count" do 
    expect { click_button t('zombie.craving') }.to change(Zombie.where(craving: true), :count).by(1) 
end 

但如果我這樣做,水豚因爲有殭屍檢測儘可能多的曖昧比賽......

哪有我爲了規避這個?

+0

使用殭屍。真棒。 :-) – Johannes

回答

1

你應該添加一個類或id到你的表單,每個殭屍都不同(比如「zombie _#{id}」)。 Rails有,這是否對你

<%= form_for(zombie, :html => { :id => dom_id(zombie) }) do |f| %> 

然後在您的測試中,您可以添加一個within一個輔助方法:在計算器問題

it "should increment the craving zombie count" do 
    zombie = Zombie.where(craving: true).first 

    within "#zombie_#{zombie.id}" do 
    expect { click_button t('zombie.craving') }.to change(zombie, :count).by(1) 
    end 
end 
+0

好的,謝謝!你知道爲什麼水豚變得如此挑剔嗎? –

+0

沒有抱歉不能回答那個:) :) – jokklan

+0

無論如何,我拖了幾天的這個問題...... –