2012-04-09 17 views
2

我是新來的RSpec和我有我寫一個測試場景:使用RSpec,是否有方法來斷言模型的特定屬性是否無效?

my_object.should_not be_valid 

,它工作正常。但是,我想測試模型的某個特定屬性是否無效。這是一種現成的RSpec行爲嗎?我可以寫這樣的:

my_object.should_not be_valid(:name) 

理想情況下,我想能夠測試誤差的人數太多,喜歡的東西:

my_object.should_not be_valid(:name => 1) 

但現在這對我來說並不那麼重要。

回答

3

this,你應該能夠編寫要麼是這樣的:通過使用these rspec matchers

describe Person do 
    it "should validate presence of email" do 
    person = Person.new(:email =>; nil) 
    person.should_not be_valid 
    person.should have(1).error_on(:email) 
    end 
end 

或者像下面:

describe Person do 
    it { should validate_presence_of(:email) } 
end 
+0

確定。第一塊是我的問題的確切答案。你的第二個團隊是相當豐富和有益的。謝謝。 – 2012-04-09 12:22:50

+0

只是一個側面說明:你提到的github回購很不合時宜。這個分支(https://github.com/smtlaissezfaire/rspec-on-rails-matchers)是最新的,並且也以gem的形式提供(https://rubygems.org/gems/rspec-on- Rails的匹配器)。你也可以檢查所有的叉子:https://github.com/joshknowles/rspec-on-rails-matchers/network – 2012-04-09 12:33:57

相關問題