jest.fn()的用法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

jest.fn()的用法
jest.fn()是Jest测试框架中的一个函数,它用来创建一个mock function并返回一个mock函数对象。

在单元测试中,使用mock function可以模拟被测试的代码中的函数或模块,使得测试更加方便和高效。

使用jest.fn()时,可以传入一个函数作为参数,来模拟具体的函数行为。

也可以不传入任何参数,生成一个空的mock function。

在生成mock function后,可以使用一些Jest提供的API来模拟mock function的行为,比如模拟函数返回值、函数抛出异常、函数被调用次数等等。

1. 创建一个mock function
```javascript
const mockFn = jest.fn();
```
这段代码创建了一个空的mock function,并将其赋值给了mockFn变量。

在mock function被调用之前,该函数不会执行任何代码。

2. 模拟函数行为
可以使用jest.fn()函数的参数来模拟具体的函数行为。

例如:
mockFn();
// Expected output: "Hello World"
```
需要注意的是,编写mock function时需要考虑被测试的代码中函数的参数和返回值类型,以便生成符合实际情况的mock function。

可以使用mockReturnValue()方法来模拟mock function的返回值。

例如:
mockReturnValue函数接受一个参数,用于指定mock function的返回值。

在调用mockFn时,将会返回指定的字符串。

```javascript
const mockFn = jest.fn();
mockFn.mockReturnValue(() => {
return "Hello World";
});
4. 模拟函数抛出异常
在这个例子中,mock function的实现被指定为一个抛出异常的函数。

尝试调用mockFn时,将会触发异常,控制台会输出异常信息。

5. 模拟函数被调用次数
可以使用mockFn的called和mockFn.mock.calls属性来判断mock function被调用的次数。

例如:
mockFn();
mockFn();
在这个例子中,mockFn被调用两次。

mockFn.mock.calls属性记录了mock function 被调用时的参数,它是一个二维数组,每个元素都是一个参数数组。

mockFn.mock.calls.length属性可以获取mock function被调用的次数。

const obj1 = { name: "obj1" };
const obj2 = { name: "obj2" };。

相关文档
最新文档