在异步摩卡测试中配置JSDom

在异步摩卡测试中配置JSDom

问题描述:

我试图将我的依赖加载到JSDom环境中,然后执行基本测试。在异步摩卡测试中配置JSDom

当我用mocha运行这个文件时,它告诉我超过了2000毫秒的最大超时时间。

// Node Dependencies 
import { readFileSync } from 'fs'; 

// NPM Dependencies 
import { expect } from 'expect'; 
import { jsdom } from 'jsdom'; 

// JSDom Configuration 
const html = '<!doctype html><html><body></body></html>'; 
const dep1 = readFileSync("./dep1.js", "utf-8"); 
const dep2 = readFileSync("./dep2.js", "utf-8"); 
const scripts = [ dep1, dep2 ]; 

describe('App Actions', function(){ 
    it('sample test', function(done){ 

    // Use JSDom to mock a browser environment, 
    // loading the necessary scripts, then executing the callback. 
    jsdom(html, scripts, callback); 

    function callback(err, window){ 
     expect(false).toEqual(true); 
     done(); 
    } 

    }); 
}); 

任何想法?

我觉得它有什么做jsdom,因为如果我改变的回调看起来像这样:

function callback(err, window){ 
    console.log(window); 
    expect(false).toEqual(true); 
    done(); 
} 

它从来没有运行console.log

+0

也许路过'callback'到jsdom你定义它之前? – cviejo

+0

在'jsdom(html,scripts,callback)'的调用之上被挂起。如果我将上面的回调移动,那么同样的问题。 –

您正在导入jsdom.jsdom,但使用的语法为jsdom.env(它确实将回调作为第三个参数)。改变这一行:

import { jsdom } from 'jsdom'; 

要:

import { env } from 'jsdom';