जावास्क्रिप्ट प्रदूषण में वैश्विक नामस्थान को आम तौर पर बुरी चीज माना जाता है। यही कारण है कि कॉफ़ीस्क्रिप्ट (function() {}).call(this);
रैपर में आपके सभी जावास्क्रिप्ट को लपेटता है।QUnit + कॉफ़ीस्क्रिप्ट स्कोप
हालांकि, मैंने अपने कॉफ़ीस्क्रिप्ट कोड के लिए क्विनीट परीक्षण लिखना शुरू कर दिया है, और QUNit शिकायत करता है कि यह मेरे कार्यों को नहीं ढूंढ सकता है।
1. Died on test #1: getGoodNamePart is not defined
getGoodNamePart is not defined at Object.<anonymous> (file:///Users/kevin/Documents/docs/code/chrome/tests.js:2:10) at Object.run
मैं वैश्विक नामस्थान प्रदूषित किए बिना चर का परीक्षण करना चाहता हूं। ऐसा करने का एक अच्छा तरीका क्या है?
यहाँ उत्पन्न जावास्क्रिप्ट मैं परीक्षण करना चाहते है:
(function() {
getGoodNamePart = function(str) {
if (str.charAt(0) === '"') {
str.replace(/" <[^>]+>$"/g, "");
str.replace(/"/g, "");
return str;
} else if (str.charAt(0) === '<') {
str.replace(/<|>/g, "");
return str;
} else {
return str;
}
};
}).call(this);
और मेरे test.js फ़ाइल है:
test('getGoodNamePart()', function() {
equals(getGoodNamePart("\"Kev Burke\" <[email protected]>"), "Kev Burke", "\"name\" <email> works");
equals(getGoodNamePart("", "", "empty string works"));
equals(getGoodNamePart("[email protected]", "[email protected]", "raw email works"));
return equals(getGoodNamePart("<[email protected]>", "[email protected]", "email inside carets -> carets get stripped"));
});
धन्यवाद, केविन
modularize नहीं है कुछ उदाहरण कोड उपयोगी होगा। –
हाय हारून, मैंने एक उदाहरण जोड़ा। –