如何使用Sinon间谍检查从当前类内的函数中调用导入的类函数?我试图在导入的类函数上调用.calledOnce
方法,但前提是它在其函数容器中调用它。
一个例子说明如下:
<!-- language: lang-js -->
// foo.js
class foo {
static fooFn() {
}
}
// bar.js
import foo from 'foo';
class bar {
barFn() {
foo.fooFn()
}
}
// barTest.js
import { expect, assert } from 'chai';
import sinon from 'sinon';
import bar from 'bar';
describe('barTest', () => {
beforeEach(function beforeCallback() {
this.fooSpy = sinon.spy(foo, 'fooFn');
});
it('calls foo once', () => {
bar.barFn();
expect(foo.fooFn).calledOnce;
});
});
在上面的例子中,我能够全局监视fooFn
被调用一次。但是,我希望通过在foo.fooFn
内调用barFn
的支票来强化期望。
答案 0 :(得分:0)
您可以使用arguments.caller例如
来验证调用函数expect(arguments.caller).equal(bar.barFun);