2011-02-26 11 views
8

से बाहर करता है मैं यह जांचना चाहता हूं कि मॉडल उपलब्ध विभिन्न तरीकों से डीबी को जारी रखा गया था या नहीं। ऐसा लगता है कि इन सभी चीजों को स्थगित कर दिया गया है। बचाओ लेकिन अगर कोई बेहतर तरीका है, तो शायद मैं उत्सुक हूं, शायद डर्टी क्या प्रदान करता है? ,,रुपेक/रेल मैचर जो मॉडल को _be_saved

expect { 
    MyModel.do_something_which_should_create_a_record 
}.to change(MyModel, :count).by(1) 

या आप जांच करने के लिए है कि एक मूल्य बचा लिया गया था चाहने रहे हैं आप की तरह कुछ कर सकता है::

उत्तर

21

एक तरह से जाँच करने के लिए एक नया रिकार्ड बनाया गया था, तो

my_model.do_something_which_updates_field 
my_model.reload.field.should == "expected value" 

या फिर आप expect और change फिर से इस्तेमाल कर सकते हैं:

my_model = MyModel.find(1) 
expect { 
    my_model.do_something 
}.to change { my_model.field }.from("old value").to("expected value") 

क्या आप विदेश मंत्रालय थे कि है निंग?

संबंधित मुद्दे