2012-09-06 34 views
11

Tôi đang cố gắng tìm ra một cách khác để viết phép kiểm tra đếm thay đổi (không có lambda). Tôi đang sử dụng Rails 3. Tôi cũng sử dụng các shoulda khớp đá quýRspec nên thay đổi số mà không cần lambda

Reason - Tất cả các trường hợp thử nghiệm có định dạng

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

Nhưng tôi không thể làm theo cùng một khuôn mẫu để kiểm tra nên thay đổi đếm

Dưới đây là những gì tôi có

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

có cách nào để viết nó

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

Cảm ơn rất nhiều !!

Trả lời

30
subject { lambda { ... } } 

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

tôi đang viết thông số kỹ thuật như thế này trong một thời gian và thực sự cố gắng tìm một cách ngắn gọn hơn để làm điều này. Đây có phải là lựa chọn tốt nhất có thể không? – firedev

5

Bạn cũng có thể sử dụng cú pháp mong đợi:

describe "some stuff" do 
    expect { ... }.to change(Model, :count).by(1) 
end 
Các vấn đề liên quan