我正在将Babel从6.26.0升级到7.8.3,现在我的一些测试正在中断。似乎新版本阻止了Sinon在升级后对导出的功能进行存根。
是否有配置设置或插件需要在升级过程中使用以获得较旧的行为?
这里是一个打破测试的例子:
it('a calls b', function () {
bStub = sinon.stub(B, 'default');
a.do();
expect(bStub.calledOnce).to.be.true; // this used to be true but no is now false
});
这些函数通常很简单,但是我添加了一些日志记录代码,当使用较旧版本的Babel时,似乎B()可以按预期方式进行存根,但是不再成功存根,并且会调用实际的B()函数。] >
实际测试功能:A.js
A.do = function () { return B(); }; export default A;
和正在存根的函数调用:B.js
export default function B () { ... };
我在升级过程中进行的一些配置更改:
project.json
"devDependencies": { + "@babel/cli": "^7.8.3", + "@babel/core": "^7.8.3", + "@babel/preset-env": "^7.8.3", - "babel-cli": "^6.5.1", - "babel-core": "^6.26.0", - "babel-loader": "^7.1.2", - "babel-preset-es2015": "^6.5.0", + "babel-loader": "^8.0.6", ... }
。babelrc
{ - "presets": ["es2015"] + "presets": ["@babel/preset-env"] }
webpack.config.json
module: { rules: [ { test: /\.js$/, exclude: /node_modules|scripts|dist|build\//, use: { loader: 'babel-loader', options: { - presets: ['es2015'] + presets: ['@babel/preset-env'] } } } ] }
谢谢!
我正在将Babel从6.26.0升级到7.8.3,现在我的一些测试正在中断。似乎新版本阻止了Sinon在升级后对导出的功能进行存根。是...