且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

jasmine.objectContaining 的单步调试

更新时间:2022-09-14 21:04:24

装饰好的 engine 调用 setup options:

jasmine.objectContaining 的单步调试jasmine.objectContaining 的单步调试jasmine.objectContaining 的单步调试

engine 指的是下图这段绿色代码:


jasmine.objectContaining 的单步调试

现在准备执行下面这段代码了:


jasmine.objectContaining 的单步调试

准备调用被 mock 过的 engine 函数:

jasmine.objectContaining 的单步调试


即下图 1 的函数:

jasmine.objectContaining 的单步调试


只要 spy 被调用,其调用时传入的参数,必定可以被记录:


jasmine.objectContaining 的单步调试

看这段代码:


jasmine.objectContaining 的单步调试


jasmine.objectContaining 的适用场合:


jasmine.objectContaining 用于那些期望只关心实际中的某些键/值对的时候。


把这段代码改造一下:


jasmine.objectContaining 的单步调试

jasmine.objectContaining 返回的类型为:jasmine.ArrayContaining


jasmine.objectContaining 的单步调试


ArrayContaining 类型定义如下:


jasmine.objectContaining 的单步调试

单步调试:


jasmine.objectContaining 的单步调试


返回的是一个新的 matcher?


jasmine.objectContaining 的单步调试


就是一个简单的构造器:

jasmine.objectContaining 的单步调试


而 objectContaing 的逻辑类似,也是一个简单的构造器。


jasmine.objectContaining 的单步调试


把这两个对象进行比较:


jasmine.objectContaining 的单步调试

实际参数:

jasmine.objectContaining 的单步调试


最后返回 true:

jasmine.objectContaining 的单步调试