2016-01-20 20 views
6

jqueryでうまくいくように、mocha、jsdom、es6モジュールをbabelで取得するのは苦労しています。jsdomを使ってjqueryをインポートするes6モジュールをテストするには

ここでモジュールはここでここjsdomセットアップ

// test/_setup.js 
var jsdom = require('jsdom'); 

global.document = jsdom.jsdom('<!doctype html><html><body></body></html>'); 
global.window = document.parentWindow; 

mocha --compilers js:babel-register --recursive 
0123を実行するスクリプトのテスト

// test/dom.js 
import assert from 'assert'; 
import { node } from '../src/lib/dom'; 

describe('node(tag)',()=> { 
    it('should return a Node',()=> { 
    let img = node('img'); 
    assert(img.nodeName === 'IMG'); 
    }); 
}); 

をだだ

// lib/dom.js 
import $ from 'jquery'; 

const node = (tag)=> $(`<${tag} />`) 

export { 
    node 
} 

です

私はdom.jsがエラーを取得せずにjqueryのモジュールをロードできるようにjsdomはjqueryのをロードできるようにするために変更すること何が必要です:

エラー:jQueryのはここに完全なソースだ文書

でウィンドウを必要としhttps://github.com/markbrown4/test-simple

答えて

8

は、それを手に入れたテスト/ _setup.jsには、次のものが必要:

global.document = require('jsdom').jsdom('<html></html>'); 
global.window = document.defaultView; 
global.$ = require('jquery')(window); 

document.parentWindowはjsdomから廃止されました。

+1

私はこれを試しましたが、 'global。$'は関数の代わりにオブジェクトであるように見えます。 – Pensierinmusica

関連する問題