В настоящее время я устанавливаю некоторые тесты мокко с использованием узла и вообще они работают. Я столкнулся с проблемой, которую я не могу решить.Node.js, Mocha, make globals in closures available
У меня есть файл JS, содержащий следующее: MyClass.js (Общий CoffeeScript выход для class MyClass
+ constructor: ->
)
EDIT: Это код браузера, я просто хочу, чтобы использовать узел, чтобы проверить его. (Это даже желательно?)
(function() {
window.MyClass = (function() {
function MyClass() {
// Do something cool here
}
return MyClass;
})();
}).call(this);
Теперь я требую MyClass.js в своем тестовом файле. После того, как я бегу, он сразу выдает ошибку
TestFile:
var myclass = require('MyClass.js');
...
describe('MyClass', function() { ... });
Ошибка:
ReferenceError: window is not defined.
До сих пор, я понимаю, почему это происходит, окно не существует в узле. Но я не могу придумать решение. Я действительно не нуждаюсь в реальном объекте window
специально, поэтому я думал, что насмехается, этого будет достаточно. Но это не так ...
var window = {},
myclass = require('myclass.js');
...
describe('MyClass', function() { ... });
Эта команда также не помогает: $ mocha --globals window
Я до сих пор в конечном итоге с той же ошибкой. Любая идея очень ценится!
Почему именно вам нужен объект окна? – Simon
В противном случае я не смог бы позвонить ему из другого места, поскольку он завернут. MyClass сам создан для браузера, хотя я просто думал об использовании Node для его проверки (я также пытался использовать jsdom или что-то подобное, но я тоже не смог) – pabera
с помощью 'var window', вы создаете локальную переменную окна , Мы хотим глобальную переменную. Я пробовал 'window = {}', и похоже, что он может работать таким образом. –