Jest 内部原理剖析

Jest 是 Facebook 开源的一个 JavaScript 测试框架,已经应用在 Babel / TypeScript / Node / React / Angular / Vue 等项目中。
在愉悦地编写 Jest 测试代码后,你是否会好奇 test / expect / mock / spyOn 这些内置方法是如何实现的呢?下面我们一起来看一下。
Test
Jest 中的 test 函数标准实例是:
这里可以注意到,如果第二个参数的函数执行没有抛出异常的话,会打印第一个参数,因此我们的模拟实现可以是:
Expect
expect 函数的典型使用实例是:
注意到expect 的返回值具备一个可以调用的方法toBe ,那么我们可以这样模拟expect
Mock
当我们要避免测试一个功能时又依赖于不稳定的另外一个功能,我们创建一个 Mock 来更好的管理。Jest 使用 jest.fn 是实现 Mock
为了实现上面的效果,我们可以这样模拟定义jest.fn 和 expect
最后更新于
这有帮助吗?