我正在 ES6 babel-node 环境中进行测试。我想模拟一个在我正在导入的方法中使用的方法。具有挑战性的部分似乎是我要模拟的方法被导入到我要测试的方法所在的文件中。我已经探索了 proxyquire、babel-plugin-rewire 但我似乎无法让它们在其他导入中导入的方法上工作。通过阅读各种 github 问题,我觉得这可能是一个已知的限制/挫折。这是不可能的还是我错过了什么?
使用 proxyquire 或 babel-plugin-rewire 时不会产生错误。该方法不会被模拟出来,它会返回方法的正常值。
这是导入情况的一般示例。
// serviceLayer.js
getSomething(){
return 'something';
}
// actionCreator.js
import { getSomething } from './serviceLayer.js';
requestSomething(){
return getSomething(); <------- This is what I want to mock
}
// actionCreator.test.js
import test from 'tape';
import {requestSomething} from 'actionCreator.js'
test('should return the mock' , (t) => {
t.equal(requestSomething(), 'something else');
});