Trong Javascript gây ô nhiễm không gian tên chung, thường được coi là một điều xấu. Đây là lý do tại sao Coffeescript kết thúc tốt đẹp tất cả các Javascript của bạn trong một wrapper (function() {}).call(this);
.Phạm vi QUnit + coffeescript
Tuy nhiên, tôi đã bắt đầu viết các bài kiểm tra QUnit cho mã Coffeescript của tôi và QUnit phàn nàn rằng nó không thể tìm thấy các chức năng của tôi.
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
Tôi muốn kiểm tra các biến mà không gây ô nhiễm không gian tên chung. Cách tốt để làm điều này là gì?
Dưới đây là Javascript tạo ra tôi muốn kiểm tra:
(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);
và tập tin test.js của tôi là:
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"));
});
Cảm ơn, Kevin
Một số mã ví dụ sẽ là hữu ích. –
Xin chào Aaron, tôi đã thêm một ví dụ. –