Javascript Sinon spy期望在嵌套函数中调用函数
如何使用Sinon spy检查导入的类函数是否从当前类内的函数中调用?我试图在导入的类函数上调用Javascript Sinon spy期望在嵌套函数中调用函数,javascript,testing,ecmascript-6,sinon,chai,Javascript,Testing,Ecmascript 6,Sinon,Chai,如何使用Sinon spy检查导入的类函数是否从当前类内的函数中调用?我试图在导入的类函数上调用.calledOnce方法,但仅当它在其函数容器中被调用时 示例如下所示: <!-- language: lang-js --> // foo.js class foo { static fooFn() { } } // bar.js import foo from 'foo'; class bar { barFn() { foo.fooFn(
.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;
});
});
//foo.js
福班{
静态fooFn(){
}
}
//bar.js
从“foo”导入foo;
分类栏{
barFn(){
foo.fooFn()
}
}
//巴特斯特js
从'chai'导入{expect,assert};
从“sinon”进口sinon;
从“bar”导入bar;
描述('barTest',()=>{
beforeach(函数beforeCallback(){
this.fooSpy=sinon.spy(foo,'fooFn');
});
它('调用foo一次',()=>{
bar.barFn();
expect(foo.fooFn).calledOnce;
});
});
在上述情况下,我能够全局监视
fooFn
被调用一次。但是,我想通过检查foo.fooFn
是否在barFn
中调用来加强expect。您可以使用参数验证调用方函数
expect(arguments.caller).equal(bar.barFun);
您可以使用参数验证调用方函数
expect(arguments.caller).equal(bar.barFun);