2012-09-06 12 views
11

私はラムダなしでカウント変更のテストを書く別の方法を理解しようとしています。すべてのテストケースは、フォーマットRspecはラムダなしでカウントを変更する必要があります

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

であるしかし、私は変更する必要がありますテストするために同じパターンに従うことができないです - 私は3レールを使用しています 私はまた、shouldaマッチャ宝石に

理由を利用していますここで

は私が

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 
関連する問題