【发布时间】:2017-09-08 20:28:01
【问题描述】:
我使用 es6 模块和 Karma/Mocha/Sinon/Chai 进行单元测试。如果我在另一个 es6 模块中调用了一个 es6 模块,我可以对第二个 es6 模块进行存根/监视,如下所示:
module-a.js
export function a() {
// do something
}
module-b.js
import * as moduleA from './module-a';
export function b() {
// do something
moduleA.a();
}
使用上面的代码,我可以监视 moduleA.a() 并确定它何时被调用,并存根 moduleA.a() 并强制返回特定值。
但是,如果我遇到这种情况,我就无法监视或存根:
module-a.js
export function a() {
// do something
}
export function b() {
// do something
a();
}
如果我在本例中尝试 spy/stub 函数 a(),则永远不会调用 Sinon 中的 spy/stub/这是一种很常见的情况,所以有没有人找到一种方法来 spy/stub 本地函数?
谢谢!
【问题讨论】:
-
发生这种情况的原因与变量的绑定有关。请参阅我对这个类似问题的回答:stackoverflow.com/questions/52587999/…
标签: javascript unit-testing karma-runner sinon