【发布时间】:2016-01-10 08:44:07
【问题描述】:
我有一个带有 mocha、babel 和节点的测试设置,旨在测试 ecmascript 6 代码。
有人对如何在被测模块中模拟导入有任何建议吗?
【问题讨论】:
-
这实际上与 ES6 没有任何关系,但与您正在使用的模块加载器有关。开玩笑的自动模拟依赖项:facebook.github.io/jest
-
@FelixKling 它与 ES6 有关。 CommonJS 很容易用 proxyquire 模拟,但用 ES6 导入解决起来更复杂。我知道一些解决方案,但仍在寻找更好的解决方案。我想重新打开这个问题,看看其他人找到了什么解决方案。你提到的玩笑是一种解决方案,但它可能不是每个人的完美解决方案,它没有回答如何用 Mocha 解决它。
-
@FelixKling +1 重新开放。这个问题不是 nodejs 问题,而是 ES6 问题。
require和import的工作方式非常不同。 -
@atoth: “这个问题不是 nodejs 问题,而是 ES6 问题。” 好吧,这个问题提到了 node,但假设它没有。在这种情况下,这个问题无法回答。单独的 ES6 与模块 加载 没有任何关系。任何合理的解决方案都取决于环境,因为它是处理模块加载的环境。 ES6 模块只是添加了一些语法。随之而来的是一些限制,但它并没有从根本上改变模块的加载方式。我正在重新提出这个问题,但我担心它可能会误导而不是有用。
-
stackoverflow.com/q/27323031/242582 有一些建议的解决方案应该能够工作 - 我建议使用与 Babel 一起使用的
import * as obj from 'dependencies'策略,我想应该可以与 Mocha 一起工作。
标签: javascript mocha.js ecmascript-6 babeljs