नींद (1. सेकंड) विधि का उपयोग किये बिना मैं अपना स्पेक कैसे लिखूं? जब मैं नींद को हटा देता हूं तो मेरे परीक्षण तोड़ते हैं क्योंकि वे एक ही समय टिकट वापस कर रहे हैं?रूबी में नींद() का उपयोग किये बिना मैं एक अपडेटेड_ट फ़ील्ड को आरएसपीसी/टेस्ट कैसे करूं?
def skip
qs = find_or_create_by(user_id: user_id)
qs.set_updated_at
qs.n_skip += 1
qs.save!
end
और निम्नलिखित कल्पना:
qs = skip(user.id)
sleep(1.second)
qs2 = skip(user.id)
qs.should_not be_nil
qs2.should_not be_nil
(qs.updated_at < qs2.updated_at).should be_true
अपने set_updated_at विधि क्या करना है:
फिर, उदाहरण के लिए, आप rspec एक नामित गुंजाइश है कि आदेश updated_at अवरोही क्रम में मॉडल प्रश्नों कहा जाता हो जाता है परीक्षण करने के लिए उपयोग कर सकते हैं? मुझे नहीं लगता कि आप वास्तव में स्किप विधि का परीक्षण कर रहे हैं, जिसकी जांच करने के लिए आपको स्किप विधि का परीक्षण करना है: 1: दिए गए डेटा के साथ find_or_create_by पर कॉल करें, 2: ऑब्जेक्ट पर set_updated_at कॉल करें, 3: increments n_skip 1 और 4 द्वारा: qs ऑब्जेक्ट को बचाता है। अब आप परीक्षण कर रहे हैं कि set_updated_at किसी अन्य विधि के परीक्षण में सही अपडेट_ट टाइमस्टैम्प सेट करता है – arieljuod