【发布时间】:2018-12-04 22:44:36
【问题描述】:
我想在无法导出模块的环境中测试脚本。我已经安装了 Jest 版本 23.1.0,我的 package.json 文件中没有其他软件包。
使用 jsdom 'old' api 我想出了一个按预期工作的解决方案:
script.js
var exVar = "test";
script.test.js
const jsdom = require('jsdom/lib/old-api.js');
test('old jsdom api config', function(done) {
jsdom.env({
html: "<html><body></body></html>",
scripts: [__dirname + "/script.js"],
done: function (err, window) {
expect(window.exVar).toBe("test");
done();
}
});
});
但是,对于这个实现,我必须为每个测试重新编写配置,因为看起来 jsdom 配置每次都被重新编写。
我的尝试
到目前为止,我已尝试运行此配置:
const jsdom = require('jsdom/lib/old-api.js');
jsdom.env({
html: "<html><body></body></html>",
scripts: [__dirname + "/script.js"],
done: function (err, window) {
console.log('end');
}
});
通过这个测试:
test('old jsdom api config', function(done) {
expect(window.exVar).toBe("test");
done();
});
以不同的方式:在 beforeAll 内部,在通过 setupFiles 或通过 Jest 配置对象中的 setupTestFrameworkScriptFile 链接的脚本内部,但仍然没有任何作用。
也许我可以按照docs 中的建议扩展jest-environment,但我不知道应该使用的语法,也不知道如何将此文件链接到测试。
【问题讨论】:
标签: javascript node.js jestjs jsdom