Javascript'te küresel ad alanı genellikle kötü bir şey olarak kabul edilir. Bu nedenle Coffeescript, Javascript'inizin tamamını bir (function() {}).call(this);
sarıcıda sarar. Bununla birlikte, Coffeescript kodum için QUnit testleri yazmaya başladım ve QUnit, işlevlerimi bulamadığı için şikayet ediyor.QUnit + coffeescript scope
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
Değişkenleri global ad alanını kirletmeden test etmek istiyorum. Bunu yapmanın iyi bir yolu nedir? İşte
oluşturulan JavaScript ben testine ister ki:
(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);
ve benim test.js dosyasıdır:
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"));
});
Teşekkür, Kevin Yani
modülarize gelmez test amaçlı
$ coffee -c -b your_file
için, --bare bayrağıyla kahve dosyasını derlemek. –
Merhaba Aaron, bir örnek ekledim. –