取決於你如何需要工作,但...
describe Question do
it "should be read only when marked as answered" do
question = Question.new(:title => 'old title')
question.answered = true
question.save
# this
lambda {
question.title = 'new title'
}.should raise_error(ReadOnlyError)
# or
question.title = 'new title'
question.save
question.title.should == 'old title'
# or
quesiton.title = 'new title'
question.save.should be_false
end
end
或者你想成爲拯救引發的錯誤?或者,也許沒有錯誤,它只是默默無聞地改變了價值?這取決於你如何實現它,但方法是一樣的。在國家
- 設置你的對象要符合規範他們
- 確保在該狀態下你的對象做你所期望的
所以建立一個回答問題,然後看看你能不能改變一個數據。如果你不能,那麼規格通過。這取決於你如何讓模型的行爲發揮作用。 BDD最棒的地方在於你首先想到了這個接口,因爲你必須實際使用一個對象API來指定它。