2012-10-23 64 views
1

我正在爲我的第一個Rails應用程序編寫一些代碼,似乎無法找到查找我的驗證錯誤的最佳方法,以便我可以輕鬆地將它們放入,而無需重複自己。如何訪問RSpec文件中的驗證錯誤消息?

我願把這個:

let(:error_messages) { page.find 'div#error_explanation ul' } 
specify { error_messages.should have_content "Name can't be blank" } 
specify { error_messages.should have_content "Email can't be blank" } 
specify { error_messages.should have_content "Email is invalid" } 
specify { error_messages.should have_content "Password can't be blank" } 
specify { error_messages.should have_content "Password is too short (minimum is 6 characters)" } 
specify { error_messages.should have_content "Email is invalid" } 

弄成這個樣子:

let(:error_messages) { page.find 'div#error_explanation ul' } 
specify { error_messages.should have_content "errors.name_blank" } 
specify { error_messages.should have_content "errors.email_blank" } 
specify { error_messages.should have_content "errors.email_invalid" } 
specify { error_messages.should have_content "errors.password_invalid" } 
specify { error_messages.should have_content "errors.password_short" } 
specify { error_messages.should have_content "errors.email_invalid" } 

謝謝!

回答

1

您是否已在測試模型驗證?如果是這樣,道歉。

否則,您應該考慮使用errors_on幫助程序並測試您的模型本身,如here on rspec's relish pages所述。這種方法既可以更快執行,也可以在標記更改時更少脆弱。

describe ValidatingWidget do 
    it "fails validation with no name (using error_on)" do 
    ValidatingWidget.new.should have(1).error_on(:name) 
    end 
end