यदि यह एक इकाई परीक्षण है, मैं कर रहा हूँ ले कृपया कुछ इनपुट दिए जाने पर आप फ़ंक्शन आउटपुट की जांच कर रहे हैं?
यहाँ मेरी राय है:
आप इस मामले में जहां document.ready कहा जाता है और इस मामले में जहां यह नहीं है के लिए तैयार करना चाहिए।
तो आपके यूनिट परीक्षण को प्रत्येक फ़ंक्शन को दो बार चलाना चाहिए - एक बार पूर्व-तैयार कॉल अनुकरण करने के लिए और एक पोस्ट-तैयार कॉल अनुकरण करने के लिए। यही है, आपके पास एक रन-थ्रू होना चाहिए जहां दस्तावेज़ पर कुछ भी हो। पहले से ही चलाया जाता है, और एक रन-थ्रू जहां इसे अभी अनदेखा किया जाता है (संभावित रूप से बाद में जीवन चक्र में कहा जाता है)।
संपादित करें: बस प्रश्न को दोबारा पढ़ें और इसे थोड़ा और समझ लिया। आप केवल $ (दस्तावेज़) को ओवरराइड कर सकते हैं। जो भी आप चाहते हैं उसे करने के लिए पहले से ही (जो DOMLoaded ईवेंट को आग लगाना है, लेकिन इसके बजाय फ़ंक्शंस को तुरंत चलाने के लिए नहीं है)। यह स्निपेट उस फ़ंक्शन के साथ $ (दस्तावेज़) .ready फ़ंक्शन को प्रतिस्थापित करेगा जो ठीक उसी तरह करता है। इसे किसी यूनिट परीक्षण से पहले चलाना चाहिए।
var postReady = true; // or false to ignore the function calls.
jQuery.fn.ready = function(fn)
{
if(postReady && fn) fn();
}
उदाहरण परीक्षण का मामला:
<html><head><title>whatever</title>
<script type="text/javascript" src="/JS/jquery-1.3.2.js"></script>
<script type="text/javascript">
var postReady = true; // or false to ignore the function calls.
jQuery.fn.ready = function(fn)
{
alert("We stole ready!");
if(postReady && fn) fn();
}
$(document).ready(function()
{
alert("The function is called.");
});
</script>
</head><body></body>
</html>
स्रोत
2009-12-03 03:35:47
मैं सहमत हूं कि मैं इसे कैसे करता हूं लेकिन अधिकांश लोगों को शायद इनिट फ़ंक्शन की आवश्यकता नहीं होती है। –