在 ES6 中模拟默认导出的最佳方法是什么?

eli*_*00d 5 javascript mocha.js sinon ecmascript-6

根据这个答案,我找到了一种模拟命名导出的好方法:/sf/answers/2688987591/

代码测试.js:

import {someMethod} from './someNamedExports'
export default () => someMethod()
Run Code Online (Sandbox Code Playgroud)

codeToTestSpec.js:

import * as someNamedExports from './someNamedExports'
import codeToTest from './codeToTest

sinon.stub(someNamedExports, 'someMethod')
codeToTest()
someNamedExports.someMethod.should.have.been.called
someNamedExports.someMethod.restore()
Run Code Online (Sandbox Code Playgroud)

这按预期工作。

但是,我似乎遇到了默认导出的问题。这是我尝试过的:

代码测试.js:

import someDefaultExport from './someDefaultExport
export default () => someDefaultExport()
Run Code Online (Sandbox Code Playgroud)

codeToTestSpec.js:

import * as someDefaultExport from './someDefaultExport'
import codeToTest from './codeToTest

sinon.stub(someDefaultExport, 'default')
codeToTest()
someDefaultExport.default.should.have.been.called
someDefaultExport.default.restore()
Run Code Online (Sandbox Code Playgroud)

它似乎没有按预期进行存根,并抱怨尝试恢复时未定义 someDefaultExport.default 。

我错过了什么还是这可能是 sinon 的错误?