该函数的一个使用场景:
it(`should pass parameters to the original engine instance`, () => {
expect(originalEngineInstance).toHaveBeenCalledWith(
mockPath,
mockOptions,
jasmine.any(Function)
);
});
语义:
originalEngineInstance 被调用时,传递的第三个参数是任意的函数,即 jasmine.any(Function) 返回的引用。
但是,这个任意的函数,不能是 mockCallback.
it(`should apply optimization wrapper`, () => {
// we check, that callback is not the original one
expect(originalEngineInstance).not.toHaveBeenCalledWith(
mockPath,
mockOptions,
mockCallback
);
});
我们可以通过调试的方式,找到运行时第三个参数,实际是一个定义如下的函数:
而 jasmine.any(Function) 返回的引用,如下图绿色高亮区域所示:
真实被调用的 callback 是这个:
即代码228行指定的函数:
更多Jerry的原创文章,尽在:"汪子熙":