副标题:SAP Spartacus SSR 优化的单元测试分析之二 - 调用参数检测
源代码:
it(`should pass parameters to the original engine instance`, () => {
expect(originalEngineInstance).toHaveBeenCalledWith(
mockPath,
mockOptions,
mockCallback
);
});
注意观察 jest.Expect 的返回值:类型为 jest.JestMatchersShape
单步调试 expect 的调用过程:
从注释看,该函数为 spec 创建一个 expectation, 传入的 actual 为 spy 之后的版本。
构造一个 expectation,需要以上的参数。
紧接着调用 toHaveBeenCalledWith:
支持的所有方法,在 Chrome 开发者工具里能够看到:
toHaveBeenCalledWith
执行到这里来了:
所有可用的匹配器 matchers,都定义在文件 jasmine.js 里:
因此,toHaveBeenCalledWith 也算匹配器 matchers 之一。
构造一个匹配器实例:
调用匹配器工厂,构造一个匹配器实例:
其实例的运行代码如下图所示:
比较实际被调用的参数,是否和期望被调用的参数完全一致。
进入数组的比较分支:
更多Jerry的原创文章,尽在:"汪子熙":
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。