2010-02-11 12 views
15

मैं एक दृश्य में 'time_ago_in_words' फ़ंक्शन का उपयोग कर रहा हूं, और मुझे FunctionalTest में आउटपुट का परीक्षण करने की आवश्यकता है।फ़ंक्शनलटेस्ट से 'time_ago_in_words' को कैसे कॉल करें?

लेकिन परीक्षण 'time_ago_in_words' सहायक कार्य नहीं देख सकता है।

FunctionalTests से इन सहायक विधियों का उपयोग करने के लिए मुझे क्या करना चाहिए?

उत्तर

39

अपने test_helper.rb या test.rb फ़ाइलों में ActionView::Helpers::DateHelper मॉड्यूल शामिल करें। और यह है, परीक्षण कंसोल से:

>> time_ago_in_words(3.minutes.from_now) 
NoMethodError: undefined method `time_ago_in_words' for #<Object:0x3b0724> 
from (irb):4 
from /Users/blinq/.rvm/rubies/ruby-1.9.1-p376/bin/irb:15:in `<main>' 
>> include ActionView::Helpers::DateHelper 
=> Object 
>> time_ago_in_words(3.minutes.from_now) 
=> "3 minutes" 
+1

अरग, जिसने मुझे वास्तव में एक लूप के लिए फेंक दिया, शीश, मेरे पास यह कोड प्रारंभिक फ़ाइल में था और इसे विधि नहीं मिली। धन्यवाद! – Bob

+0

ग्रेट जॉब, थेंक्स –

+0

कंसोल से, आप 'irb (main): 110: 0> helper.time_ago_in_words 3.minutes.ago' – Chloe

-1

आप वास्तव में परीक्षण करने का प्रयास कर रहे हैं? आपको time_ago_in_words के व्यवहार को सत्यापित करने की आवश्यकता नहीं है, क्योंकि यह रेल के अपने परीक्षणों द्वारा कवर किया गया है। यदि आप अपने स्वयं के हेल्पर्स में से एक का परीक्षण कर रहे हैं जो time_ago_in_words का उपयोग करता है, तो आउटपुट को एक सहायक परीक्षण में चेक किया जा सकता है (जो ActionView::TestCase से प्राप्त होता है)।

कार्यात्मक परीक्षण नियंत्रक के व्यवहार की पुष्टि करने के लिए हैं (क्या टेम्पलेट वे प्रस्तुत करना, चाहे वे, उपयोग की अनुमति अनुप्रेषित, आदि) जो कुछ HTML टैग (आईडी) के द्वारा की उपस्थिति के लिए जाँच शामिल कर सकते हैं। मैं आमतौर पर टैग की सामग्री की जांच करने के लिए उनका उपयोग करने से बचने का प्रयास करता हूं।

+0

क्यों नीचे मतदान किया? –

0

मुझे हाल ही में एक ही समस्या थी जहां मैं एपीआई से इस फ़ंक्शन तक पहुंचने का प्रयास कर रहा था, इसलिए मैंने इसे समय-समय पर एक मणि में लपेट लिया। इसे देखें: https://github.com/onetwopunch/timeywimey#usage

यह आपको रेलवे परियोजना के साथ-साथ सिनात्रा और देशी रूबी परियोजना में कहीं से भी इस सहायक तक पहुंचने की अनुमति देता है।

0

मैं rails_helper.rb

config.include ActionView::Helpers::DateHelper 

और काम के पर जोड़ा, धन्यवाद के @jpemberthy!