1

我有一个文件runspecs.js初始化一些全局对象,如窗口和文档

//fake browser window & document
jsdom = require("jsdom");
global.document = jsdom.jsdom("<html><body></body></html>", jsdom.level(1, "core"));
global.window = jsdom.jsdom().createWindow();
global.jQuery = require("jquery");

global.document.cookie = '';

//Test framework
var jasmine=require('jasmine-node');
for(var key in jasmine) {
  global[key] = jasmine[key];
}

//What we're testing
//Make sure the coffeescript is compiled!

global.Socrates = require("./src/socrates.js").Socrates;

jasmine.executeSpecsInFolder(__dirname + '/specs', function(runner, log){
    process.exit(runner.results().failedCount?1:0);
}, true, true);

现在我在 specs 目录下的唯一文件是 socrates.spec.coffee 及其编译文件 socrates.spec.js:

testNode = jQuery("<a id='testNode class='socrates' data-entity-id='bubbles'").appendTo('body')

describe 'socrates.js', () ->
  describe 'document/window setup', () ->
    it 'is attaches an instance to the window', () ->
      soc = new Socrates([])
      expect(window.socrates.prototype).toEqual(soc.prototype)

现在,由于新的苏格拉底没有失败,我们知道至少 global.Socrates 正在通过。它使用 document 和 document.cookie,所以这些也没关系。为什么窗口未定义?

4

0 回答 0