下图为匹配方法,红色为不能匹配
下面的matcher都易懂,不解释,所有的expect返回的都为true,记住这点对理解matcher用法很有帮助
toBeCloseTo相对难理解,这里做一下解释:
先来看toBeCloseTo的源码,如下图,先对传入的精度参数判零后做了一次逻辑或运算,并将返回值赋给精度参数,之后代码很好理解,是根据精度参数调整四舍五入的范围,最初让笔者纠结的是这个方法为什么要用精度参数和2做逻辑或,这么一来不是无论传什么非零参数,精度参数在逻辑或之后都成了1?后来发现是这么回事,注意:js逻辑或的值就是true或者false类型的原来是个大的错误,逻辑或会取||两边的一个不为0或false的值,从左往右
分析完源码就不难理解toBeCloseTo的作用,就是将expected和actual的小数点后precision+1位四舍五入,然后判断是否相等,相等返回true,否则返回false,见下图
toThrow()不解释,见下图