2012-09-06 19 views
11

我想弄明白應該改變計數測試(沒有lambda)的另一種方式。 我使用Rails 3.我也利用早該匹配寶石Rspec應該改變計數沒有lambda

原因 - 所有測試用例的格式爲

describe "some stuff" do 
    it { should ... } 
end 

但我不能夠遵循同樣的模式來測試應該改變算上

這裏是我有什麼

describe "some stuff" do 
    it "should change count by one" do 
     lambda { ... }.should change(Model, :count).by(1) 
    end 
end 

有沒有把它寫

方式
describe "some stuff" do 
    it { should change(Model, :count).by(1) } 
end 

非常感謝!

回答

30
subject { lambda { ... } } 

it { should change(Model, :count).by(1) } 
+0

我寫這樣的規格了一會兒,實際上是試圖找到一個更簡潔的方式來做到這一點。這是最好的選擇嗎? – firedev

5

您還可以使用預期的語法:

describe "some stuff" do 
    expect { ... }.to change(Model, :count).by(1) 
end