2012-09-06 8 views
11

Próbuję wymyślić inny sposób zapisu testu liczenia powinien zmienić (bez lambda). Używam szyn 3. Ja również z wykorzystaniem GEM shoulda dopasowującyRspec powinien zmienić licznik bez lambda

powód - Wszystkie przypadki testowe są w formacie

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

Ale nie jestem w stanie śledzić ten sam wzorzec do testowania należy zmienić liczyć

Oto co mam

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

Czy istnieje sposób, aby zapisać go

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

Wielkie dzięki!

Odpowiedz

30
subject { lambda { ... } } 

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

pisałem widowisko tak przez jakiś czas i faktycznie próbuje znaleźć bardziej zwięzły sposób to zrobić. Czy to najlepsza możliwa opcja? – firedev

5

Można również użyć składni oczekiwać:

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