【发布时间】:2015-10-11 21:50:06
【问题描述】:
我正在我的服务器上运行 mocha 测试,以一种独立的单元测试方式测试源脚本。
我正在测试的一个脚本调用了 Webpack 的 require.ensure 函数,当它被 Webpack 捆绑时,它对于在应用程序中创建代码分割点很有用。
我为此脚本编写的测试不在 Webpack 上下文中运行,因此 require.ensure 函数不存在,测试失败。
我试图为这个函数创建某种 polyfill/stub/mock/spy,但没有任何运气。
有一个包,webpack-require,它允许创建 webpack 上下文。这可以工作,但速度慢得令人无法接受。我希望有某种轻量级的 polyfill 直接针对 require.ensure 函数。
有什么建议吗? :)
这是一个非常基本的起点摩卡测试。
mocha 测试加载一个人为的模块,其中包含一个方法,如果定义了require.ensure,则该方法返回 true。
foo.js
export default {
requireEnsureExists: () => {
return typeof require.ensure === 'function';
}
};
foo.test.js
import { expect } from 'chai';
describe('When requiring "foo"', () => {
let foo;
before(() => {
foo = require('./foo.js');
});
it('The requireEnsureExists() should be true', () => {
expect(foo.requireEnsureExists()).to.be.true;
});
});
【问题讨论】:
标签: javascript node.js unit-testing mocha.js webpack