Mock functions
Rstest 基于 tinyspy 提供了一些工具方法帮助你进行函数的模拟(mock)。
rstest.fn
- 别名:
rs.fn - 类型:
创建一个 mock 函数。
rstest.spyOn
- 别名:
rs.spyOn - 类型:
对一个对象的方法进行 mock。
rstest.isMockFunction
- 别名:
rs.isMockFunction - 类型:
(fn: any) => fn is MockInstance
判断给定的函数是否为 mock 函数。
rstest.mockObject
- 别名:
rs.mockObject - 类型:
创建一个对象的深度 mock。所有方法都会被替换为 mock 函数,而原始值和普通对象会保留。
基本用法
Mock 返回值
你可以配置 mock 方法返回特定的值:
Spy 模式
当传入 { spy: true } 作为第二个参数时,原始实现会被保留,同时仍然追踪调用:
数组
默认情况下,数组会被替换为空数组。使用 { spy: true } 时,数组保持其原始值:
Mock 类
你也可以 mock 类构造函数。使用 { spy: true } 可以保留原始类的行为,同时追踪调用:
rstest.mocked
- 别名:
rs.mocked - 类型:
一个 TypeScript 类型辅助函数,用于将对象包装为 mock 类型而不改变其运行时行为。当你 mock 了一个模块并想要获得正确的 mock 方法类型提示时,这很有用。
该函数在运行时只是返回相同的对象——它只影响 TypeScript 类型。
rstest.clearAllMocks
- 别名:
rs.clearAllMocks - 类型:
() => Rstest
清除所有 mock 的 mock.calls、mock.instances、mock.contexts 和 mock.results 属性。
rstest.resetAllMocks
- 别名:
rs.resetAllMocks - 类型:
() => Rstest
清除所有 mock 属性,并将每个 mock 的实现重置为其原始实现。
rstest.restoreAllMocks
- 别名:
rs.restoreAllMocks - 类型:
() => Rstest
重置所有 mock,并恢复被 mock 的对象的原始描述符。