Node.js 有没有办法模拟'module'变量?

Node.js 有没有办法模拟'module'变量?,node.js,webpack,mocha.js,sinon,jestjs,Node.js,Webpack,Mocha.js,Sinon,Jestjs,我想测试我的appinit函数,这取决于node.jsmodule变量(webpack的module变量)。因此,我无法将模块变量作为函数参数传递 我找到了这个图书馆,这似乎对我的问题有帮助。但由于ES6的导入,它看起来被放弃了,并且出现了一些错误 我要测试的代码示例: import ReactDOM from 'react-dom' import React from 'react' import Root from './components/Root' export function

我想测试我的app
init
函数,这取决于node.js
module
变量(
webpack
module
变量)。因此,我无法将
模块
变量作为函数参数传递

我找到了这个图书馆,这似乎对我的问题有帮助。但由于ES6的导入,它看起来被放弃了,并且出现了一些错误

我要测试的代码示例:

import ReactDOM from 'react-dom'
import React from 'react'

import Root from './components/Root'

export function init() {
  const {AppContainer} = require('react-hot-loader')
  const render = Component => {
    ReactDOM.render(
      <AppContainer>
        <Component />
      </AppContainer>,
      document.getElementById('root')
    )
  }

  render(Root)

  if (module.hot) { // the part I would like to test by mocking `module` variable
    module.hot.accept('./components/Root', () => { render(Root) })
  }
}

init()
从“react dom”导入ReactDOM
从“React”导入React
从“./components/Root”导入根目录
导出函数init(){
const{AppContainer}=require('react-hot-loader')
常量呈现=组件=>{
ReactDOM.render(
,
document.getElementById('root'))
)
}
渲染(根)
if(module.hot){//我想通过模拟'module'变量来测试的部分
module.hot.accept('./components/Root',()=>{render(Root)})
}
}
init()

显示您的代码。@alexmac更新了我的问题不确定您是否可以并且应该为模块创建存根。您可以尝试以下操作:创建一个新函数
export.getHot=()=>module.hot,在您的模块中使用它,并在测试中为其创建存根。@alexmac我认为这是个好主意,谢谢您展示您的代码。@alexmac更新了我的问题不确定您是否可以并且应该为模块创建存根。您可以尝试以下操作:创建一个新函数
export.getHot=()=>module.hot,在模块中使用它,并在测试中为它创建存根。@alexmac我认为这是个好主意,谢谢