moduleOne:
const moduleTwo = require('moduleTwo'); //moduleTwo opens Websocket
module.exports = {
functionToTest: () => 1
}
现在我要测试该功能-test.js:
const tap = require('tap');
const moduleOne = require('moduleOne');
tap.equal(moduleOne.functionToTest(),1);
问题是,在moduleTwo中运行了一些代码,这些代码打开了一个websocket,并且测试没有完成。
如何在测试时防止moduleOne要求moduleTwo?
最佳答案
您可以使用mock-require:
const tap = require('tap');
mock('moduleTwo', {
// export whatever you need, just don't open websockets
});
// now moduleOne will require your mock instead of real moduleTwo
const moduleOne = require('moduleOne');
tap.equal(moduleOne.functionToTest(),1);
或者,您可以向
moduleTwo
添加一些选项,但是这将需要更改使用它的每个位置。关于javascript - 跳过需要Node.js中的模块进行测试的步骤,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42024803/