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)

新しいソクラテスが失敗しなかったので、少なくともグローバル・ソクラテスが成功していることがわかります。document と document.cookie を使っているので、そちらでも構いません。ウィンドウが定義されていないのはなぜですか?

4

0 に答える 0