如果字段包含帶RSpec的2個字母字符串,測試的正確方法是什麼?我正在跟蹤一個我認爲在rails 2中工作的舊示例。它會創建新的Address
實例,在其上設置無效值,然後在該實例上觸發valid?
,最後檢查errors
是否報告有錯誤。現在檢查屬性在RSpec中是否包含2個字母
it 'requires state to be of length 2' do
subject = Address.new
subject.state = 'Cal'
should_not be_valid
subject.errors.on(:state).should_not be_nil
end
,Rails 3中沒有errors.on,所以我試着用
subject.errors[:state].should_not be_nil
但這裏的問題是,errors[:attribute]
空Array
而不是nil
。
這樣的作品,thanks.Just一個問題,在你看來是有一個更優選的測試呢? – Zed
你可以使用shoulda驗證助手。 '它不應該允許_值(「Cal」)。for(:state)}' – usha
好的,再次感謝。 – Zed