2014-01-05 34 views
1

嘗試編寫驗收來測試顯示的錯誤消息。我在form_for中測試number_field類型時遇到了問題。通過rails上的number_field ruby​​創建的測試flash消息

組 - Index.html.erb

<div class='row'> 
    <div class="small-4 columns"> 
     <%= f.label :size %> 
     <%= f.number_field :size, in: 1..12 %> 
    </div> 
    </div> 

的問題是,number_field防止表單提交如果輸入是它顯示的數目如何必須是閃速消息不是1和12之間在1和12之間。

因爲表單根本沒有提交,所以控制器中的我的flash [:error]沒有命中。我不太清楚如何測試這個問題。

回答

0

隨着水豚/ RSpec的你至少寫的東西,如:

visit my_form_path 
fill_in ... # all the other stuff on the form 
select '99', from: 'size' 
click_button 'Submit' #or whatever the submit button is called 
expect(page).to_not have_content(...) #text on page rendered if form submit works 
expect(page).to have_content(...) #text on the form the user should still be on 

你是正確的,你永遠不會看到閃光如果瀏覽器支持HTML5。水豚支持不同的瀏覽器引擎,但是我不太瞭解它是否支持任何模擬舊瀏覽器的東西。如果發生這種情況,你可以換一箇舊的瀏覽器,你大概會看到閃光燈。

+0

上述工作在上下文中水豚將不支持HTML5,所以它實際上提交表單。但從用戶的角度來看,驗收測試,他們並沒有真正提交表格,所以爲後者提交測試的情況下編寫測試將從用戶的角度來看是錯誤的。 – jmoon90

+0

我會建議使用Selenium驅動程序,但我不認爲Firefox支持這個元素。我想知道你是否可以使用這個和一個polyfill,但是如果我的深度在那一點,我就會出來.https://github.com/Modernizr/Modernizr/wiki/HTML5-Cross-browser-Polyfills –