在异步摩卡测试中配置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
。
答
您正在导入jsdom.jsdom
,但使用的语法为jsdom.env
(它确实将回调作为第三个参数)。改变这一行:
import { jsdom } from 'jsdom';
要:
import { env } from 'jsdom';
也许路过'callback'到jsdom你定义它之前? – cviejo
在'jsdom(html,scripts,callback)'的调用之上被挂起。如果我将上面的回调移动,那么同样的问题。 –