साथ/नकली समय मैं अपने कोडआप कैसे स्थिर है जैस्मीन BDD
new Date().getFullYear();
में इस तरह की एक पंक्ति है और मैं यह हमेशा एक ही वर्ष लौटना ही होगा।
क्या जैस्मीन के साथ ऐसा करने का कोई तरीका है?
धन्यवाद।
साथ/नकली समय मैं अपने कोडआप कैसे स्थिर है जैस्मीन BDD
new Date().getFullYear();
में इस तरह की एक पंक्ति है और मैं यह हमेशा एक ही वर्ष लौटना ही होगा।
क्या जैस्मीन के साथ ऐसा करने का कोई तरीका है?
धन्यवाद।
जावास्क्रिप्ट में आप बस अपने परीक्षण सेटअप में समारोह के ऊपर लिख सकते हैं:
Date.prototype.getFullYear = function(){return 2012}
तुम भी एक jasmine spy इस्तेमाल कर सकते हैं:
spyOn(Date, 'getFullYear').andReturn(2012)
एक और तरीका है अपने आप समारोह चाहते में तारीख डालने के लिए है परीक्षा। बीटीडब्ल्यू कौन सा है। टेस्टेबल कोड लिखने का सबसे अच्छा तरीका है। अपने कार्यों में नए उदाहरण न बनाएं, क्योंकि आप हमेशा न केवल अपने कोड का परीक्षण करना शुरू करते हैं बल्कि यह भी उदाहरण देते हैं।
शायद 'spyOn (date.prototype,' getFullYear ') होना चाहिए। और रीटर्न (2012) '। –
यह मेरे लिए काम करता है: 'spyOn (date.prototype, 'getFullYear')। और .returnValue (2012)' – Sam
यदि आप फ़ंक्शन को ओवरराइट करते हैं, तो इकाई परीक्षण के बाद इसे पुनर्स्थापित करना सुनिश्चित करें ताकि ओवरलोडेड फ़ंक्शन न हो अन्य परीक्षणों, या शायद यहां तक कि आवेदन के लिए रिसाव। 1. 'मूल मूल GetFullYear = Date.prototype.getFullYear', 2. परीक्षण करें, 3.' date.prototype.getFullYear = originalGetFullYear' –
Sinon.js नकली टाइमर।
http://sinonjs.org/docs/#clock
मैं अपने चश्मा में इस का उपयोग कर समय कोड की जाँच करने के Node.js में एक ड्रम मशीन का निर्माण किया। लेकिन मैंने इसके साथ एक और परियोजना पर भी काम किया जहां एकमात्र तरीका मैं इसे प्राप्त करने के लिए एक विशिष्ट वर्ष का उपयोग कर सकता था, मुझे लगता है कि किसी कारण से 1 9 6 9। मुझे लगता है कि यूनिक्स युग की शुरुआत है।
वैसे भी, जो लगभग एक साल पहले था, इसलिए उन्होंने शायद इसे अभी तक तय कर लिया है।
क्या आप किसी अन्य वर्ग की तरह दिनांक उदाहरण विधि को बस नहीं लगा सकते? –
आप कैसे करेंगे? – Cezar
उनके दस्तावेज़ों में उदाहरणों के समान ही, लेकिन इसके बजाय तिथि के साथ - अब इसे आजमाएं नहीं, लेकिन मुझे लगता है कि यह वही काम करेगा। –