pab*_*era 8 javascript mocha.js node.js
我目前正在使用Node设置一些mocha测试,一般来说它们都可以工作.我现在遇到了一个我无法解决的问题.
我有一个包含以下内容的JS文件:MyClass.js(用于class MyClass+的常规CoffeeScript输出constructor: ->)
编辑:这是浏览器代码,我只想用Node来测试它.(这甚至是可取的吗?)
(function() {
window.MyClass = (function() {
function MyClass() {
// Do something cool here
}
return MyClass;
})();
}).call(this);
Run Code Online (Sandbox Code Playgroud)
我现在在我的测试文件中需要MyClass.js.一旦我运行它,它直接抛出一个错误
TESTFILE:
var myclass = require('MyClass.js');
...
describe('MyClass', function() { ... });
Run Code Online (Sandbox Code Playgroud)
错误:
ReferenceError: window is not defined.
Run Code Online (Sandbox Code Playgroud)
到目前为止,我理解为什么会发生这种情况,Node中不存在窗口.但我无法想出一个解决方案.我实际上并不特别需要真实的window物体,所以我想嘲笑它就足够了.但它不是......
var window = {},
myclass = require('myclass.js');
...
describe('MyClass', function() { ... });
Run Code Online (Sandbox Code Playgroud)
这个命令也没有帮助: $ mocha --globals window
我仍然得到同样的错误.任何想法都非常感谢!
1)您正在寻找的是module.exports在 Node 中公开事物:
http://openmymind.net/2012/2/3/Node-Require-and-Exports/
2)另外,你在Node中不需要IIFE,你可以删除(function() {...
3)你总是可以在 Github 上查看一些流行的 Node 存储库来查看示例,查看 Mocha 代码,因为你正在使用它,你会学到一两件事。