众所周知,在前面的代码中,我们在编写一个测试用例的时候用到了 test、expect、toBe 三个方法,在之前我们也介绍了 Jest 的基础使用、Jest 的简单配置、 Jest 中的匹配器(matchers)、 Jest 命令行工具的使用和异步代码的测试、 Jest 中的钩子函数及作用域,今天我们来说说Jest中的Mock。
函数的Mock
在我们的项目中,一个模块的方法内通常会去调用另外一个模块的方法。
在测试时,我们可能并不需要关心方法内部的执行过程和结果,只想知道它是否被正确调用即可,此时,就需要用到Jest的使用Mock函数了。
Mock函数提供的以下三种特性,在我们写测试代码时十分有用:
捕获函数调用情况
设置函数返回值
改变函数的内部实现
测试函数是否被正常调用
首先定义一个函数,用来执行传入的回调,然后导出:
export const runCallback = callback => {
callback();
};
然后我们需要这样测试:
import { runCallback } from "./index";
test("测试 runCallback", () => {
const func = jest.fn();
runCallback(func);
expect(func).toBeCalled();
});
测试函数调用次数是否正确
首先定义一个函数,用来执行传入的回调,然后导出:
export const runCallback = callback => {
callback();
};
然后我们需要这样测试:
import { runCallback } from "./index";
test("测试调用次数", () => {
const func = jest.fn();
runCallback(func);
runCallback(func);
runCallback(func);
expect(func.mock.calls.length).toBe(3);
});
测试函数是否返回undefined
首先定义一个函数,用来执行传入的回调,然后导出:
export const runCallback = callback => {
callback();
};
然后我们需要这样测试:
import { runCallback } from "./index";
test("测试返回值", () => {
const func = jest.fn();
expect(runCallback(func)).toBeUndefined();
});
最后: 为了回馈铁杆粉丝们,我给大家整理了完整的软件测试视频学习教程,朋友们 如果需要可以自行免费领取 【保证100%免费】
软件测试面试文档
我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。